资讯专栏INFORMATION COLUMN

Python机器学习工具:Scikit-Learn介绍与实践

HackerShell / 356人阅读

摘要:简介官方的解释很简单用来玩机器学习。什么是机器学习机器学习关注的是计算机程序如何随着经验积累自动提高性能。的生态是一门简单易学的语言,语法要素不多,对于只关心机器学习本身非软件开发的人员,语言层面的东西基本是不需要关心的。

Scikit-learn 简介

官方的解释很简单: Machine Learning in Python, 用python来玩机器学习。

什么是机器学习

机器学习关注的是: 计算机程序如何随着经验积累自动提高性能。而最大的吸引力在于,不需要写任何与问题相关的特定代码,泛型算法就能告诉你一些关于数据的秘密。

Scikit-learn的优点

构建于现有的NumPy(基础n维数组包),SciPy(科学计算基础包), matplotlib(全面的2D/3D画图),IPython(加强的交互解释器),Sympy(Symbolic mathematics), Pandas(数据结构和分析)之上,做了易用性的封装。

简单且高效的数据挖掘、数据分析的工具。

对所有人开放,且在很多场景易于复用。

BSD证书下开源。

Scikit-learn的生态 Python

python是一门简单易学的语言,语法要素不多,对于只关心机器学习本身非软件开发的人员,python语言层面的东西基本是不需要关心的。

Jupyter

http://nbviewer.jupyter.org/ 提供了一种便利的方式去共享自己或是别人的计算成果,以一种之前单单共享代码不同的交互的方式,scikit-learn官网上面大量的例子也是以这种方式展示,使用者不仅看到了代码的使用方式,还看到了代码的结果,如果自己搭建了jupyter server的话,导入notebook还可以直接在浏览器中在其中上下文任意处修改,大大增加了学习效率。

Scikit-learn 的主要内容 Scikit-learn的算法地图

按照上图 scikit-learn提供的主要功能主要关注与数据建模,而非加载、操作、总结数据, 这些任务可能NumPy、Pandas就已经足够了。为此scikit-learn 主要提供了以下功能:

测试数据集,sklearn.datasets模块提供了乳腺癌、kddcup 99、iris、加州房价等诸多开源的数据集

降维(Dimensionality Reduction): 为了特征筛选、统计可视化来减少属性的数量。

特征提取(Feature extraction): 定义文件或者图片中的属性。

特征筛选(Feature selection): 为了建立监督学习模型而识别出有真实关系的属性。

按算法功能分类,分为监督学习:分类(classification)和回归(regression),以及非监督学习:聚类(clustering)。sklearn提供了很全面的算法实现,详细算法清单http://scikit-learn.org/stabl...。

聚类(Clustring): 使用KMeans之类的算法去给未标记的数据分类。

交叉验证(Cross Validation): 去评估监督学习模型的性能。

参数调优(Parameter Tuning): 去调整监督学习模型的参数以获得最大效果。

流型计算(Manifold Learning): 去统计和描绘多维度的数据

常用算法的大致介绍 分类 Classification

适用范围: 用作训练预测已经标记的数据集的类别. 监督学习的代表。

常用算法对比:

Do we Need Hundreds of Classifiers to Solve Real World Classification Problems?,文章测试了179种分类模型在UCI所有的121个数据上的性能,发现Random Forests 和 SVM 性能最好。

回归 Regression

适用范围:

回归是用于估计两种变量之间关系的统计过程,回归分析可以帮助我们理解当任意一个自变量变化,另一个自变量不变时,因变量变化的典型值。最常见的是,回归分析能在给定自变量的条件下估计出因变量的条件期望。 (举个例子,在二维的坐标系中,根据已有的坐标点去推导x、y轴的函数关系,既一元n次方程。)

常用算法对比:

优点:直接、快速;知名度高

缺点:要求严格的假设;需要处理异常值

集成算法 Ensemble Algorithms


上图是多带带用决策树来做回归任务去预测数据,但是反映了决策树虽然易于解释理解之外会有一些预测上的缺点,总结而言是趋向过拟合,可能或陷于局部最小值中、没有在线学习,所以下图引入了AdaBoost 集成算法来增加预测的可靠性,由此引出了集成算法的优点:

集成方法是由多个较弱的模型集成模型组,其中的模型可以多带带进行训练,并且它们的预测能以某种方式结合起来去做出一个总体预测。

当先最先进的预测几乎都使用了算法集成。它比使用单个模型预测出来的结果要精确的多。

但是如何找出可结合的弱模型、以及结合的方式又称为了繁重的维护工作。

聚类 Clustering

适用范围:

是在没有标记的情况下去分类数据,使数据变得有意义, 如果已知分类分类的个数,Kmeans算法会更容易得出效果。

常用算法对比:

该图中颜色是聚类的结果,而非标记, 各算法的分类结果都可以根据输入参数调优,只是为了展示聚类的适用范围适合有特征的数据类型,对于最下一行的几乎均匀的数据几乎没有任何意义。

Scikit-learn进行计算的主要步骤

数据获取、预处理。

可选的降维过程.因为原始数据的维度比较大, 所以需要先找出真正跟预测目标相关的属性。

学习以及预测的过程。

反复学习的过程。增加样本、调优参数、换算法各种方式去提供预测的准确率。

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]]
引用

Quick Start Tutorial http://scikit-learn.org/stabl...

User Guide http://scikit-learn.org/stabl...

API Reference http://scikit-learn.org/stabl...

Example Gallery http://scikit-learn.org/stabl...

Scikit-learn: Machine Learning in Python

API design for machine learning software: experiences from the scikit-learn project


反爬虫
文章来源:http://bigsec.com/

toyld 岂安科技搬运代码负责人

主导各处的挖坑工作,擅长挖坑于悄然不息,负责生命不息,挖坑不止。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/38541.html

相关文章

  • 入门系列之Scikit-learnPython中构建机器学习分类器

    摘要:使用该数据集,我们将构建机器学习模型以使用肿瘤信息来预测肿瘤是恶性的还是良性的。我们将使用函数来确定机器学习分类器的准确性。您已成功构建了第一台机器学习分类器。现在,您可以使用在中加载数据组织数据训练预测和评估机器学习分类器。 欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由信姜缘 发表于云+社区专栏 介绍 机器学习是计算机科学、人工智能和统计学的研究领域。机器学...

    Null 评论0 收藏0
  • 编程界的“头牌”名媛:Python,14个数据科学的“暧昧情事”

    摘要:安装安装用于数据科学的的最佳方法是使用发行版。但这只是展示了构建数据科学问题的不同方式中的机器学习这是一个重要的主题,机器学习正在风靡世界,是数据科学家工作的重要组成部分。 作为编程界的头牌名媛,Python平易近人的态度和精明婉约的灵动深得各个大佬欢心。比如:人工智能、web开发、爬虫、系统运维、数据分析与计算等等。这几位风流多金的行业精英随便哪个都能逆转未来。 本文为你精心准备了一...

    Labradors 评论0 收藏0
  • 重磅 | 完备的 AI 学习路线,最详细的资源整理!

    摘要:是你学习从入门到专家必备的学习路线和优质学习资源。的数学基础最主要是高等数学线性代数概率论与数理统计三门课程,这三门课程是本科必修的。其作为机器学习的入门和进阶资料非常适合。书籍介绍深度学习通常又被称为花书,深度学习领域最经典的畅销书。 showImg(https://segmentfault.com/img/remote/1460000019011569); 【导读】本文由知名开源平...

    荆兆峰 评论0 收藏0

发表评论

0条评论

HackerShell

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<