常见数据挖掘算法和Python简单实现
1、K近邻算法
原理:计算待分类样本与每个训练样本的距离,取距离最小的K个样本,这k个样本,哪个类别占大多数,则该样本属于这个类别。
优点:1、无需训练和估计参数,2、适合多分类,3、适合样本容量比较大的问题
缺点:1、对测试样本内存开销大,2、可解释性差,无法生成规则,3、对样本量小的问题,容易误分
经验:K一般低于样本量的平方根,基于交叉验证
问题:类别判断:投票法没有考虑距离的远近,可以采用加权投票‘’
高维度变量:维度越高,欧氏距离的区分能力越差。
import numpy as np
from sklearn import neighbors
knn = neighbors.KNeighborsClassifier()
knn.fit(x,y)
knn.predict()
2、决策树
原理:以树的结构递归的选择特征,并根据特征对样本进行分割,获得子树结构的过程。
优点:1、速度快,容易形成规则,2、准确度高,易于理解;3、可以处理连续和分类字段,4、不需要参数假设和任何领域知识,5、适合高维数据
缺点:1、对于各类别样本数量不一致数据,信息增益偏向于数值更多的特征,2、易于过拟合,3、忽略关性
ID3:使用信息增益作为特征选择的度量,1、当分类不均匀时,分类精度大打折扣;2、不能处理连续数据和带缺失值数据
3、朴素贝叶斯
原理:对于待分类的项目, 求解此项出现的条件下各类别出现的概率,那个最大,此待分类项就属于哪个类别。
优点:分类速度快,对缺失值不敏感,准确度高
缺点:需要知道先验概率
from sklearn.naive_bayes import GaussianNB
model = GaussianNB()
model.fit(x, y )
model.predict()
4、Logistic回归
原理:面对一个回归或者分类函数,建立一个代价函数,通过迭代法求解出最优模型参数。
优点:速度快。适合二分类问题;直接看到各个特征的权重,能更容易更新模型吸收新的数据。
缺点:对数据和场景的适应能力不强。
5、支持向量机
原理:通过最大化分类分界点到分类界面距离来实现分类。
优点:提高泛化性能,解决小样本下机器学习的问题,避免神经昂神经网络选择和局部极小的问题。
缺点:对缺失数据敏感,内存消耗大,难解释。
SVM和逻辑回归区别:
从目标函数看,逻辑回归采用logistical loss ,SVM采用hinge loss。
逻辑回归是参数模型,SVM是非参数模型。
6、Adaboost
集成学习:1、boosting是同一种机器学习算法,数据抽取时,裙权值在不断更新,每次提高前一次分错了的数据集的权值,最后得到T个弱分类器,且分类器的权值跟中间结果的数据有关;
bagging:同一种弱分类器,数据抽取通过有放回抽样(bootstrap);
stacking算法:第一层行程T个弱分类器,生成相同的新数据及,利用这个数据集和新算法构成第二层分类器。
adaboost算法:是一种迭代算法,针对同一个训练集训练不同的分类器,然后把分类器集合起来,构成一个更强的分类器。关注被错分的样本,器重好的分类器
优点:不担心过拟合问题,不用做特征筛选,可以用各种方法构造分类器。
from sklearn.ensemble import GradientBoostingcClassifier
model=GradientBoostingClassifier(n_estimators=100,learning_rate=1.0,max_depth=1,random_state=0)
model.fit()
7、K-均值聚类
优点:当聚类是密集的,且类与类之间区别明显时,效果较好;对于处理大数据及,这个算法相对高校,计算复杂度为O(NKT),N是数据量, K 是聚类中心, T是迭代的次数。
from sklearn.clster import KMeans
clf = KMeans(n_clusters=3,max_iter=300,n_init=10)
8、PCA
原理:通过线性投影,将高维空间映射到低维空间,所投影维度上数据的方差最大。
注意:使用pca可以提取主成分,肯能会解决一些过拟合问题,但不建议使用降维解决过拟合,建议加个正则化项来解决。
只有源数据结果较好,但嫌他太慢采用主成分分析。
10.apriori关联分析
常见数据挖掘算法和Python简单实现相关推荐
- python选择排序从大到小_经典排序算法和Python详解之(一)选择排序和二元选择排序...
本文源自微信公众号[Python编程和深度学习]原文链接:经典排序算法和Python详解之(一)选择排序和二元选择排序,欢迎扫码关注鸭! 扫它!扫它!扫它 排序算法是<数据结构与算法>中最 ...
- pca算法python_PCA算法和python实现
第十三章 利用PCA来简化数据 一.降维技术 当数据的特征很多的时候,我们把一个特征看做是一维的话,我们数据就有很高的维度.高维数据会带来计算困难等一系列的问题,因此我们需要进行降维.降维的好处有很多 ...
- 常见缓存算法和LRU与LFU的c++实现
目录 常见的缓存算法 LRU缓存 LRU Cache具备的操作: LRU的c++实现 双链表节点的定义: 指定容量大小 删除操作 插入操作 获取操作 插入新节点 LRU完整C++代码实现 LRU和LF ...
- 粒子群优化算法和python代码_Python编程实现粒子群算法(PSO)详解
1 原理 粒子群算法是群智能一种,是基于对鸟群觅食行为的研究和模拟而来的.假设在鸟群觅食范围,只在一个地方有食物,所有鸟儿看不到食物(不知道食物的具体位置),但是能闻到食物的味道(能知道食物距离自己位 ...
- 聚类基本概念及常见聚类算法和EM算法
1. 基本概念 1.1 定义 聚类:发现数据中分组聚集的结构,根据数据中样本与样本之间的距离或相似度,依据类内样本距离小(相似度大).类间样本距离大(相似度小)将样本划分为若干组/类/簇. 基于划分的 ...
- 《OpenCv视觉之眼》Python图像处理十四 :Opencv图像轮廓提取之Scharr算法和Canny算法
本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的.不同方法的处理,以达到对图像进行去噪.锐 ...
- python 北京大学陈斌教授_“其实数算可以很简单” ——专访北大地空学院陈斌...
[采访时间]2015年5月6日 陈斌,北京大学地球与空间科学学院遥感与地理信息系统研究所副教授,主要研究方向为空间信息分布式计算.分布式虚拟地理环境.在教学方面,陈斌老师负责本科生课程<离散数学 ...
- 线性判别函数(Python实现批感知器算法、Ho Kashyap算法和MSE多类扩展方法)——模式识别编程作业
文章目录 写在前面 批感知器算法 Ho Kashyap算法 MSE多类扩展方法 Ref. 写在前面 本博客为模式识别作业的记录,实现批感知器算法.Ho Kashyap算法和MSE多类扩展方法,可参考教 ...
- 【数据挖掘实验】关联规则——CARMA算法和AprioriAll算法
一.实验项目名称: 关联规则--CARMA算法和AprioriAll算法 二.实验目的与要求: 在软件方面:会用Clementine软件进行序列关联规则分析. 在理论方面:CARMA算法和Aprior ...
最新文章
- openssl修改版本号
- 窗体的扩展样式GWL_EXSTYLE:用于SetWindowLong
- 互联网1分钟 | 0124 抖音社交产品“多闪”登顶苹果商店总排行榜;王欣或将推出新社交产品丸子视频...
- js中setAttribute 的兼容性
- 魅族16T官网开启预约:骁龙855+4400mAh大电池
- java判空null前后,关于java:引不要再使用null判空了
- java swing取消按钮_在Java Swing中取消选择单选按钮
- qt如何编写android程序,如何利用Qt开发Android应用程序
- 游戏平台系统源码开源有多重要
- RS232 9针串口定义
- 尚学堂马士兵SSH笔记下载
- 忘记压缩包密码 python 暴力破解rar密码
- CSP-J (初中级别比赛)初赛总结
- 如何识别图片文字,PaddleOCR机器学习开源项目使用 | 机器学习
- 《ERP高级计划》书解读-APS案例分析之四缓冲的计算(蔡颖)(转)
- 【从零开始学习MySql数据库】(3)函数与子查询和连接查询
- ibm服务器显示0 bf,IBM服务器常见服务器故障总结
- LeetCode——6. Z 字形变换
- python--Folium
- python中iloc与loc的区别
热门文章
- Summers Crafts Broad Role in Reshaping Economy
- VS2015默认不支持x64下__asm{}内联汇编的解决方案(含资源共享)
- 视觉类比VISALOGY: Answering Visual Analogy Questions--NIPS2015
- HDU-安卓程序开发之简单存储/内部存储/外部存储 捉虫
- 一次幸运的校招小米Java后台offer(1),Java面试2021
- JavaScript中的浅拷贝与深拷贝(手写浅拷贝和深拷贝)
- 德国意志战胜阿根廷野蛮!德国万岁!
- 实战:k8s中基于角色的权限访问控制-RBAC(成功测试-博客输出)-20211005
- 用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题)
- SF25 | 日内交易策略开发(一)黄金日内交易模型