python 数据挖掘算法的过程详解
1、首先简述数据挖掘的过程
第一步:数据选择
可以通过业务原始数据、公开的数据集、也可通过爬虫的方式获取。
第二步: 数据预处理
数据极可能有噪音,不完整等缺陷,需要对数据进行数据标准化,方法有min-max 标准化,z-score 标准化,修正的标准z-score。
第三步:特征值数据转换
将数据提取特征使这些数据符合特定数据挖掘算法的分析模型。数据模型有很多,等下详细讲解。
第四步:模型训练
选择好的数据挖掘算法对数据进行训练
第五步:测试模型+效果评估
有两种主流方法:
十折交叉验证:将数据集随机分割成十个等份,每次用9份数据做训练集,1份数据做测试集,如此迭代10次。十折交叉验证的关键在于较平均地分为10份。
n折交叉验证又称为留一法:用几乎所有的数据进行训练,然后留一个数据进行测试,并迭代每一数据测试。留一法的优点是:确定性。
第六步:模型使用
使用训练好的模型对数据进行预测。
第七步:解释与评价
对数据挖掘后的信息加以分析解释,并应用于实际的工作领域。
2、主要的算法模型讲解 ——基于sklearn
1)线性回归:希望所有点都落在直线上,所有点离直线的距离最近。首先假设好y=ax+b中a和b的值,然后计算每个数据点到这条直线上的距离总和,目的是要使这个总和最小!
2)逻辑回归:二分算法,用于两分类问题。需要预测函数的“大概形式”, 比如是线性还是非线性的。
上面有提到,该数据集需要一个线性的边界。 不同数据需要不同的边界。
3)朴素贝叶斯算法nb:用于判断某件事的发生概率,我就曾用此算法做过舆情分类器。将一些语句变为01二维矩阵,计算词语的出现频率,从而判断语句的情感色彩是怎样的。
效率很高,但存在一定的错误概率
4)决策树dt:类似流程图的树结构,它使用分支方法来说明决策的每个可能结果。树中的每个节点代表对特定变量的测试 - 每个分支都是该测试的结果。
5)支持向量机svm:就是判断线性可分不可分,能不能用直线分割两类数据!理论可以推广到三维,甚至思维以上的特征空间。三维使用平面来分隔数据,四维和四维以上因为人类 无法直观的感知出来,所以画不出来,但是能分隔数据,存在这样的平面叫做超平面。
6)k近邻算法knn:采用测量不同特征值之间距离的方法对数据进行分类的一个算法。
给定一个样本的集合,这里称为训练集,并且样本中每个数据都包含标签。对于新输入的一个不包含标签的数据,通过计算这个新的数据与每一个样本之间的距离,选取前k个,通常k小于20,以k个剧里最近的数据的标签中出现次数最多的标签作为该新加入的数据标签。
k近邻算法,即是给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的k个实例,这k个实例的多数属于某个类,就把该输入实例分类到这个类中。(这就类似于现实生活中少数服从多数的思想)根据这个说法,咱们来看下引自*上的一幅图:
如果k=3,绿色圆点的最邻近的3个点是2个红色小三角形和1个蓝色小正方形,少数从属于多数,基于统计的方法,判定绿色的这个待分类点属于红色的三角形一类。
如果k=5,绿色圆点的最邻近的5个邻居是2个红色三角形和3个蓝色的正方形,还是少数从属于多数,基于统计的方法,判定绿色的这个待分类点属于蓝色的正方形一类。
7)k-均值聚类(k-means):
- 定义目标聚类数k,例如,k=3
- 随机初始化的 k 个聚类中心(controids)
- 计算每个数据点到k个聚类中心的euclidean distance,然后将数据点分到euclidean distance最小的对应类聚中心的那类
- 针对每个类别,重新计算它的聚类中心;
- 重复上面 3-4 两步操作,直到达到某个中止条件(迭代次数、最小误差变化等)
和knn所不同,k-均值聚类属于无监督学习。
监督学习知道从对象(数据)中学习什么,而无监督学习无需知道所要搜寻的目标,它是根据算法得到数据的共同特征。比如用分类和聚类来说,分类事先就知道所要得到的类别,而聚类则不一样,只是以相似度为基础,将对象分得不同的簇。
ps):我们在机器学习中一直会遇到两种问题,一种是回归问题,一种是分类问题。我们从字面上理解,很容易知道分类问题其实是将我们现有的数据分成若干类,然后对于新的数据,我们根据所分得类而进行划分;而回归问题是将现有数据拟合成一条函数,根据所拟合的函数来预测新的数据。 这两者的区别就在于输出变量的类型。回归是定量输出,或者说是预测连续变量;分类问题书定量输出,预测离散变量。po一张我在知乎上看到的一张图片,解释的很好:
3、sklearn自带方法joblib来进行保存训练好的模型
参考链接:
https://juejin.cn/post/6961934412518785054
https://juejin.cn/post/6844903513504530446
机器学习之逻辑回归(纯python实现) - 掘金 (juejin.cn)
机器学习笔记5-支持向量机1 - 掘金 (juejin.cn)
到此这篇关于python 数据挖掘算法的文章就介绍到这了,更多相关python 数据挖掘算法内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
推荐阅读
-
python 数据挖掘算法的过程详解
-
一段没有空格的中英文分词的n-gram算法实现 博客分类: 商业智能和数据挖掘 算法J#数据挖掘CC++
-
Apriori 购物栏挖掘算法的C#实现。原创代码 博客分类: 商业智能和数据挖掘 算法数据挖掘CC++C#
-
毕业设计4---爬虫的研究 博客分类: 毕业设计 搜索引擎Web算法Linux数据挖掘
-
多模型融合推荐算法在达观数据的运用 博客分类: 互联网,大数据 推荐系统大数据互联网数据挖掘
-
聚类分析(六)基于密度的聚类算法 — OPTICS 博客分类: 数据分析/挖掘 基于密度的聚类OPTICS
-
聚类分析(五)基于密度的聚类算法 — DBSCAN 博客分类: 数据分析/挖掘 基于密度的聚类算法DBSCAN
-
聚类分析(五)基于密度的聚类算法 — DBSCAN 博客分类: 数据分析/挖掘 基于密度的聚类算法DBSCAN
-
聚类分析(六)基于密度的聚类算法 — OPTICS 博客分类: 数据分析/挖掘 基于密度的聚类OPTICS
-
python算法与数据结构-二叉树的遍历