# 机器学习 & Sckii-Learn ## 机器学习 机器学习分类主要有: - 监督学习(SupervisedLearning): 有练习题答案,可以每次做完题后跟答案对照的学习方式, 分为: - 分类(Classification) - 回归(Regression) - 无监督学习(UnsupervisedLearning):分为 - 聚类(Clustering) - 降维(DimensionalityReduction) - 半监督学习(Semi-SupervisedLearning) - 通常应应用在标签不完整的时候 ## 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 - 常见的应用有:把输入数据(如文本)转换为机器学习算法可用的数据。 ## 安装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或更高版本。 ## Scikit-Learn版本 以前所见教程多为0.2以前版本,自0.2版本以后改动较大,本文采用0.21以后版本作为基础版本。