一、一些基本概念
1、K近邻法(属于哪个区域领域的问题)
最近邻法是最简单的预测模型之一,它没有多少数学上的假设,也不要求任何复杂的处 理,它所要求的仅仅是:
• 某种距离的概念
• 一种彼此接近的点具有相似性质的假设
最近邻法却非常有意地忽略了大量信息,因为对每一个新的数据点进行预测只依赖于少量 最接近它的点
2、朴素贝叶斯(是或者不是的问题)
朴素贝叶斯算法也是一个比较简单的模型,基于他最广泛的应用莫过于鉴别垃圾邮件了,他的原理也是相对来说比较好用文字描述的,一个样本中具备某些特征值
3、线性回归(数据与数据之间的等式关系)
• 最小二乘(每个样本的等式左边于右边差值的平方和最小问题)
• 梯度下降(倒数慢慢变小的方向的那个最小值,想想一下x平方这个函数吧,最小值点在哪呢?)
• 极大使然估计(方差和最小,和最小二乘原理有点类似)
4、多重回归分析(不是简单地y=ax b的问题啦,设计多个参数,因此,又牵扯到降维)
5、逻辑回归,逻辑函数(seigema函数的意思,并非离散的不是0,就是1,换句话说,就是可以求导被)
6、支持向量机,当地维度无法区分的时候,尝试将数据放到一个更高维度处理。
7、决策树,同样是可以做成一个预测模型,计算量比较大,而且往往对于测试数据来说,拟合比较完美,最怕出现黑天鹅。
8、随机森林,多个决策树不就是一个森林吗?你一个决策树容易造成过拟合现象,那好,多个决策树来被投票,看那个效果比较好。
二、数据科学必学框架Scikit-learn
Scikit-learn的六大功能
Scikit-learn的基本功能主要被分为六大部分:分类,回归,聚类,数据降维,模型选择和数据预处理。
分类是指识别给定对象的所属类别,属于监督学习的范畴,最常见的应用场景包括垃圾邮件检测和图像识别等。目前Scikit-learn已经实现的算法包括:支持向量机(SVM),最近邻,逻辑回归,随机森林,决策树以及多层感知器(MLP)神经网络等等。
需要指出的是,由于Scikit-learn本身不支持深度学习,也不支持GPU加速,因此这里对于MLP的实现并不适合于处理大规模问题。有相关需求的读者可以查看同样对Python有良好支持的Keras和Theano等框架。
回归是指预测与给定对象相关联的连续值属性,最常见的应用场景包括预测药物反应和预测股票价格等。目前Scikit-learn已经实现的算法包括:支持向量回归(SVR),脊回归,Lasso回归,弹性网络(Elastic Net),最小角回归(LARS ),贝叶斯回归,以及各种不同的鲁棒回归算法等。可以看到,这里实现的回归算法几乎涵盖了所有开发者的需求范围,而且更重要的是,Scikit-learn还针对每种算法都提供了简单明了的用例参考。
聚类是指自动识别具有相似属性的给定对象,并将其分组为集合,属于无监督学习的范畴,最常见的应用场景包括顾客细分和试验结果分组。目前Scikit-learn已经实现的算法包括:K-均值聚类,谱聚类,均值偏移,分层聚类,DBSCAN聚类等。
数据降维是指使用主成分分析(PCA)、非负矩阵分解(NMF)或特征选择等降维技术来减少要考虑的随机变量的个数,其主要应用场景包括可视化处理和效率提升。
模型选择是指对于给定参数和模型的比较、验证和选择,其主要目的是通过参数调整来提升精度。目前Scikit-learn实现的模块包括:格点搜索,交叉验证和各种针对预测误差评估的度量函数。
数据预处理是指数据的特征提取和归一化,是机器学习过程中的第一个也是最重要的一个环节。这里归一化是指将输入数据转换为具有零均值和单位权方差的新变量,但因为大多数时候都做不到精确等于零,因此会设置一个可接受的范围,一般都要求落在0-1之间。而特征提取是指将文本或图像数据转换为可用于机器学习的数字变量。
需要特别注意的是,这里的特征提取与上文在数据降维中提到的特征选择非常不同。特征选择是指通过去除不变、协变或其他统计上不重要的特征量来改进机器学习的一种方法。
总结来说,Scikit-learn实现了一整套用于数据降维,模型选择,特征提取和归一化的完整算法/模块,虽然缺少按步骤操作的参考教程,但Scikit-learn针对每个算法和模块都提供了丰富的参考样例和详细的说明文档。
入门姿势最佳方式是学习他的example啦,举个栗子:手写数字是识别的例子
直接就把文件链接中的
ipynb文件下载了,在jupyterlab中打开跑起即可,可以一步一步的看执行结果,便于理解。