sklearn与经典机器学习算法
sklearn
在学习的过程中,除了需要深入理解底层原理时,其实就需要避免重复的造轮子的过程,Python的强大的库就是一个非常好玩的功能
既能避免重复造轮子,还能快速的调用对应的api来使用功能
在机器学习领域的scikit-learn是一个非常常用的机器学习框架,我们将使用sklearn来说实现经典的机器学习算法
sklearn简介
sklearn是一款07年至今的机器学习开源项目,基于NumPy和SciPy,提供了很多用于数据挖掘和分析的工具和接口
sklearn主打一个只做机器学习,不轻易支持新的算法,他的好处就是非常稳定
我们可以用几行代码就完成机器学习的七个步骤
数据处理
读取数据并进行预处理,归一化、标准化、正则化等内容
分割数据
数据随机分割成三组,训练集、验证集(可以没有)、测试集
训练模型
针对选取好的特征,使用训练数据来构建模型,拟合数据,寻找最优的模型参数
这里的拟合数据主要是使用各种机器学习算法来学习数据中的特征,拟合出损失函数最小的参数
验证模型
接入验证集给模型,我们将模型在验证集上的表现作为参数优化和选择的依据,常用的方法有Holdout验证,留一验证等
测试模型
评估模型的泛化性能
需要说明的是,验证集和测试集合分开是有一定必要的,主要是因为经过多轮测试集的调整,测试集也会变为训练集,从而产生过拟合的现象,因此测试集一般也不参与模型优化
调优模型
当我们的模型通过测试时,投入使用,其实在这个过程中也是不断训练的过程,收集更全面的数据,使用不同的特征,调整参数来优化模型
sklearn功能
sklearn的功能主要分六部分:分类、回归、聚类、数据降维、模型选择、数据预处理、
分类
如果只是定性的预测,也就是预测结果是一个离散值,就可以称之为分类,sklearn已经实现的经典分类算法包括:支持向量机、最邻近算法、Logistic回归、随机森林、决策树、多层感知器等
回归
如果是定量的预测,也就是预测结果是连续值,就称之为回归,比如预测房价,股票等。经典回归算法有:线性回归、支持向量回归、岭回归、Lasso回归、贝叶斯回归等
聚类
聚类是将相似的对象进行分组,跟分类有一点像。常见的算法有:k均值聚类、谱聚类、均值漂移等。这种算法一般用在客户细分、实验结果分组、数据压缩
数据降维
数据降维主要是用于减少随机变量的数量。常见的算法有:主成分分析、特征选择、非负矩阵分解等。一般用于数据压缩、模型优化
模型选择
模型选择就是用于评估和验证模型了,对模型的参数进行选择与平衡。sklearn有很多模块可以实现功能,包括模型度量、网格搜索、交叉验证。主要是用于调整模型参数来提高模型性能
数据预处理
数据预处理就是把输入的数据转换为机器学习算法适用的数据,文本、图像等内容,主要就是包括数据特征的抽取和归一化,常用的模块是数据预处理,特征抽取等
我们这里只是做一个非常简略的介绍,具体使用方法还是需要参考官方文档,可以通过pip3命令安装sklearn
pip3 install scikit-learn
目前的规划是,接下来我们会逐步学习并使用一些常见的机器学习算法,线性回归、k-临近算法、Logistic回归、神经网络学习算法、k均值聚类,然后我们再学习机器学习的一个分支——深度学习,同样也是通过样例来实践