1. 机器学习 & Sckii-Learn¶
1.1. 机器学习¶
机器学习分类主要有:
- 监督学习(SupervisedLearning):
有练习题答案,可以每次做完题后跟答案对照的学习方式, 分为:
- 分类(Classification)
- 回归(Regression)
- 无监督学习(UnsupervisedLearning):分为
- 聚类(Clustering)
- 降维(DimensionalityReduction)
- 半监督学习(Semi-SupervisedLearning)
- 通常应应用在标签不完整的时候
1.2. Scikit-Learn¶
scikit-learn,又写作sklearn,是一个开源的基于python语言的机器学习工具包。
它通过NumPy, SciPy和Matplotlib等python数值计算的库实现高效的算法应用, 并且涵盖了几乎所有主流机器学习算法。
在工程应用中,用python手写代码来从头实现一个算法的可能性非常低, 更多情况下,是分析采集到的数据, 根据数据特征选择适合的算法, 借助于工具来完成我们的任务。 在工具包中调用算法,调整算法的参数,获取需要的信息, 从而实现算法效率和效果之间的平衡。而sklearn,正是这样一个可以帮助我们高效实现算法应用的工具包。
sklearn有一个完整而丰富的官网,里面讲解了基于sklearn对所有算法的实现和简单应用, 本文主要 采用国内的官网教程翻译,并根据需要进行少许裁剪。
sklearn中常用的模块有:
- 分类:
- 识别某个对象属于哪个类别
- 常用的算法有: SVM(支持向量机)、nearest neighbors(最近邻)、random forest(随机森林)
- 常见的应用有:垃圾邮件识别、图像识别。
- 回归:
- 预测与对象相关联的连续值属性
- 常见的算法有:SVR(支持向量机)、 ridge regression(岭回归)、Lasso
- 常见的应用有:药物反应,预测股价。
- 聚类:
- 将相似对象自动分组
- 常用的算法有:k-Means、 spectral clustering、mean-shift
- 常见的应用有:客户细分,分组实验结果。
- 降维:
- 减少要考虑的随机变量的数量
- 常见的算法有:PCA(主成分分析)、feature selection(特征选择)、 non-negative matrix factorization(非负矩阵分解)
- 常见的应用有:可视化,提高效率。
- 模型选择:
- 比较,验证,选择参数和模型
- 常用的模块有:grid search(网格搜索)、cross validation(交叉验证)、 metrics(度量)
- 它的目标是通过参数调整提高精度。
- 预处理:
- 特征提取和归一化
- 常用的模块有:preprocessing,feature extraction
- 常见的应用有:把输入数据(如文本)转换为机器学习算法可用的数据。
1.3. 安装SKlearn¶
强烈建议使用anaconda虚拟环境学习sklearn。
anaconda自带ScikitLearn模块,可以直接使用。 如果需要升级建议手动安装,或者使用 清华源,否则速度会很慢。
其余手动安装scikit-learn的最简单方法就是使用 pip或者canda。
Scikit-learn 0.20是支持Python 2.7和Python 3.4的最后一个版本 Scikit-learn 0.21将需要Python 3.5或更高版本。
1.4. Scikit-Learn版本¶
以前所见教程多为0.2以前版本,自0.2版本以后改动较大,本文采用0.21以后版本作为基础版本。