干货 观点 案例 资讯 我们 官方的解释很简单:Machine Learning in Python,用python来玩机器学习。 什么是机器学习 机器学习关注的是:计算机程序如何随着经验积累自动提高性能。而最大的吸引力在于,不需要写任何与问题相关的特定代码,泛型算法就能告诉你一些关于数据的秘密。 Scikit-learn的优点
Scikit-learn的生态 Python python是一门简单易学的语言,语法要素不多,对于只关心机器学习本身非软件开发的人员,python语言层面的东西基本是不需要关心的。 Jupyter http://nbviewer.jupyter.org/ 提供了一种便利的方式去共享自己或是别人的计算成果,以一种之前单单共享代码不同的交互的方式。scikit-learn官网上面大量的例子也是以这种方式展示,使用者不仅看到了代码的使用方式,还看到了代码的结果,如果自己搭建了jupyter server的话,导入notebook还可以直接在浏览器中在其中上下文任意处修改,大大增加了学习效率。 Scikit-learn的算法地图 按照上图 scikit-learn提供的主要功能主要关注与数据建模,而非加载、操作、总结数据,这些任务可能NumPy、Pandas就已经足够了。为此scikit-learn 主要提供了以下功能:
常用算法的大致介绍
回归是用于估计两种变量之间关系的统计过程,回归分析可以帮助我们理解当任意一个自变量变化,另一个自变量不变时,因变量变化的典型值。 最常见的是,回归分析能在给定自变量的条件下估计出因变量的条件期望。 (举个例子,在二维的坐标系中,根据已有的坐标点去推导x、y轴的函数关系,既一元n次方程。)
上图是单独用决策树来做回归任务去预测数据,但是反映了决策树虽然易于解释理解之外会有一些预测上的缺点,总结而言是趋向过拟合,可能或陷于局部最小值中、没有在线学习,所以下图引入了AdaBoost 集成算法来增加预测的可靠性,由此引出了集成算法的优点:
但是如何找出可结合的弱模型、以及结合的方式又称为了繁重的维护工作。
是在没有标记的情况下去分类数据,使数据变得有意义, 如果已知分类分类的个数,Kmeans算法会更容易得出效果。
该图中颜色是聚类的结果,而非标记, 各算法的分类结果都可以根据输入参数调优,只是为了展示聚类的适用范围适合有特征的数据类型,对于最下一行的几乎均匀的数据几乎没有任何意义。 Scikit-learn进行计算的主要步骤
决策树示例: from sklearn import datasets from sklearn import metrics from sklearn.tree import DecisionTreeClassifier # 读取 iris 数据集 dataset = datasets.load_iris() # 采用CART模型 model = DecisionTreeClassifier() model.fit(dataset.data,dataset.target) print(model) # 预测 expected = dataset.target predicted = model.predict(dataset.data) # 统计 print(metrics.classification_report(expected,predicted)) print(metrics.confusion_matrix(expected,predicted)) 输出: precision recall f1-score support 0 1.00 1.00 1.00 50 1 1.00 1.00 1.00 50 2 1.00 1.00 1.00 50 avg / total 1.00 1.00 1.00 150 [[50 0 0] [ 0 50 0] [ 0 0 50]]
你会感兴趣的内容: |