现在最常用的数据分析的编程语言为R和Python。每种语言都有自己的特点,Python因为Scikit-Learn库赢得了优势。Scikit-Learn有完整的文档,并实现很多机器学习算法,而每种算法使用的接口几乎相同,可以非常快的测试其它学习算法。

Pandas一般和Scikit-Learn配合使用,它是基于Numpy构建的含有更高级数据结构和工具的数据统计工具,可以把它当成excel。

加载数据

首先把数据加载到内存。下载UCI数据集:

1
2
3
4
5
6
7
8
9
10
11

import numpy as np
import urllib
# 数据集的url
url = "http://archive.ics.uci.edu/ml/machine-learning-databases/pima-indians-diabetes/pima-indians-diabetes.data"
# 下载文件
raw_data = urllib.urlopen(url)
# 把数据加载到numpy matrix
dataset = np.loadtxt(raw_data, delimiter=",")
# 分离数据集
X = dataset[:,0:7]  # 属性集
y = dataset[:,8]    # 标签

数据标准化

在开始应用学习算法之前,应首先对数据执行标准化,这是为了确保特征值的范围在0-1。对数据进行预处理:

1
2
3
4
5

from sklearn import preprocessing
# normalize
normalized_X = preprocessing.normalize(X)
# standardize
standardized_X = preprocessing.scale(X)

分类

ExtraTreesClassifier(基于树):

1
2
3
4
5
6

from sklearn import metrics
from sklearn.ensemble import ExtraTreesClassifier
model = ExtraTreesClassifier()
model.fit(X, y)
# 显示属性的相对重要性
print(model.feature_importances_)

LogisticRegression:

1
2
3
4
5
6
7
8
9

from sklearn.feature_selection import RFE
from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
rfe = RFE(model, 3)
rfe = rfe.fit(X, y)
print(rfe.support_)
print(rfe.ranking_)

机器学习算法

Logistic regression

通常用来解决分类问题(binary),但是也支持多个分类。这个算法会给出属于某一分类的概率:

1
2
3
4
5
6
7
8
9
10
11

from sklearn import metrics
from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
model.fit(X, y)
print(model)
# 做预测
expected = y
predicted = model.predict(X)
# 输出
print(metrics.classification_report(expected, predicted))
print(metrics.confusion_matrix(expected, predicted))

朴素贝叶斯-Naive Bayes

这也是广为人知的机器学习算法,用来学习数据分布的密度,在多分类问题中可以提供高质量的预测结果。

1
2
3
4
5
6
7
8
9
10
11

from sklearn import metrics
from sklearn.naive_bayes import GaussianNB
model = GaussianNB()
model.fit(X, y)
print(model)
# 预测
expected = y
predicted = model.predict(X)
# 结果
print(metrics.classification_report(expected, predicted))
print(metrics.confusion_matrix(expected, predicted))

KNN算法(K-Nearest Neighbours)

  • 使用Python实现K-Nearest Neighbor算法

它通常用在更复杂分类算法的一部分,它在回归问题中可以提供很好的结果。

决策树-Decision Trees

能很好的处理回归和分类问题。

1
2
3
4
5
6
7
8
9
10
11
12

from sklearn import metrics
from sklearn.tree import DecisionTreeClassifier
# fit a CART model to the data
model = DecisionTreeClassifier()
model.fit(X, y)
print(model)
# 预测
expected = y
predicted = model.predict(X)
# 结果
print(metrics.classification_report(expected, predicted))
print(metrics.confusion_matrix(expected, predicted))

支持向量机-Support Vector Machines

  • 使用Python实现Support Vector Machine算法
1
2
3
4
5
6
7
8
9
10
11
12

from sklearn import metrics
from sklearn.svm import SVC
# fit a SVM model to the data
model = SVC()
model.fit(X, y)
print(model)
# 预测
expected = y
predicted = model.predict(X)
# 结果
print(metrics.classification_report(expected, predicted))
print(metrics.confusion_matrix(expected, predicted))

Scikit-Learn还提供了一堆更复杂的算法,包括clustering,Bagging 和 Boosting。

转载于:https://www.cnblogs.com/gejuncheng/p/8127446.html

Scikit-Learn机器学习入门相关推荐

  1. 机器学习与Scikit Learn学习库

    摘要: 本文介绍机器学习相关的学习库Scikit Learn,包含其安装及具体识别手写体数字案例,适合机器学习初学者入门Scikit Learn. 在我科研的时候,机器学习(ML)是计算机科学领域中最 ...

  2. [转载]Scikit Learn: 在python中机器学习

    原址:http://my.oschina.net/u/175377/blog/84420 目录[-] Scikit Learn: 在python中机器学习 载入示例数据 一个改变数据集大小的示例:数码 ...

  3. Scikit Learn: 在python中机器学习

    Warning 警告:有些没能理解的句子,我以自己的理解意译. 翻译自:Scikit Learn:Machine Learning in Python 作者: Fabian Pedregosa, Ga ...

  4. 机器学习入门资源不完全汇总

    机器学习入门资源不完全汇总 基本概念|入门攻略|课程资源|论坛网站|东拉西扯 2014-10-14版, 好东西传送门编辑整理, 原文链接 http://ml.memect.com/article/ma ...

  5. 机器学习入门资源--汇总

    机器学习入门资源--汇总 基本概念 机器学习 机器学习是近20多年兴起的一门多领域交叉学科,涉及概率论.统计学.逼近论.凸分析.算法复杂度理论等多门学科.机器学习理论主要是设计和分析一些让计算机可以自 ...

  6. 干货 | 机器学习入门方法和资料合集

    作者 何从庆 授权自 AI算法之心 近些天在微信群里经常看小伙伴问到"机器学习如何入门,看哪些资料 ?",于是乎想根据笔者学习两年多的学习经验,介绍下机器学习如何入门,该看哪些资料 ...

  7. 机器学习入门学习资源

    机器学习入门学习资源 [转载请注明出处]http://blog.csdn.net/guyuealian/article/details/51471085 这是一篇很难写的文章,因为我希望这篇文章能对学 ...

  8. 【小白必读】机器学习入门须知

    一.机器学习入门浅谈 机器学习领域,又或者更大而化之的说人工智能方向,因为"阿尔法狗"等一系列的热门爆点话题,被推到了人前,受到越来越多人的关注. 无论你是什么领域的工作者,都一定 ...

  9. 我的机器学习入门清单及路线!

    Datawhale干货 作者:桔了个仔,南洋理工大学,Datawhale成员 知乎:https://www.zhihu.com/people/huangzhe 这是我个人的机器学习入门清单及路线,所以 ...

  10. 机器学习入门学习资料推荐

    今天介绍一些机器学习的学习资料,主要是分为以下几个方面的内容: 编程语言:实现机器学习,主要是介绍 Python 方面的语言: 书籍:看书通常是入门的一种方法,比较适合自律性强的同学: 视频:入门的第 ...

最新文章

  1. ABAP git客户端
  2. Facebook爆锤深度度量学习:该领域13年来并无进展!网友:沧海横流,方显英雄本色...
  3. Open-E DSS V7 应用系列之六 构建软件iSCSI
  4. 成为Web开发大师你必须知道的7件事情
  5. ftp工具之本地操作命令
  6. 软件项目管理0831:不要自我评价过高
  7. js(Dom+Bom)第八天—Swiper(插件)
  8. 信息学奥赛C++语言:顺序输出
  9. NOI2012 Day2
  10. 史上最惨创始人!250亿帝国如今8亿贱卖,还被兄弟亲手送进了监狱
  11. gitlab服务器代码存储位置,gitlab 数据目录迁移
  12. 车联网仿真测试解决方案
  13. 京瓷打印机p5026cdn_京瓷p5026cdn打印机驱动
  14. 什么是堆栈,堆和栈到底是不是一个概念
  15. 数据分析之matplotlib画图工具的使用(一)
  16. 【渝粤题库】广东开放大学 经济法实务 形成性考核
  17. 软件测试周刊(第36期):为什么你要当程序员?
  18. 时间戳90K是什么意思?
  19. 某IE订位源码分享与交流
  20. Tomcat双向SSL认证及CA数字证书安装和配置QQ即时通信协议窥探

热门文章

  1. Spring源码解析-实例化bean对象
  2. Java中的传值与传引用
  3. coreleft函数
  4. springboot springcloud区别_SpringBoot回顾、Spring Cloud初学
  5. 使用get set方法添减属性_头皮银屑病“克星”使用方法,你GET了吗?
  6. GIS工具篇(二):GIS最全数据下载指南
  7. CSDN光合计划-纯干货福利-推荐几个算法、分布式、数据库全系列学习教程(企业实用技术类)
  8. 用python验证猜想之类的例子_python练手好例子:验证哥德巴赫猜想
  9. java合并两个有序链表_JS实现的合并两个有序链表算法示例
  10. 郑州智慧岛大数据管委会_数据科学融通应用数学 ‖ 智慧岛大讲堂