Scikit-Learn机器学习入门
现在最常用的数据分析的编程语言为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机器学习入门相关推荐
- 机器学习与Scikit Learn学习库
摘要: 本文介绍机器学习相关的学习库Scikit Learn,包含其安装及具体识别手写体数字案例,适合机器学习初学者入门Scikit Learn. 在我科研的时候,机器学习(ML)是计算机科学领域中最 ...
- [转载]Scikit Learn: 在python中机器学习
原址:http://my.oschina.net/u/175377/blog/84420 目录[-] Scikit Learn: 在python中机器学习 载入示例数据 一个改变数据集大小的示例:数码 ...
- Scikit Learn: 在python中机器学习
Warning 警告:有些没能理解的句子,我以自己的理解意译. 翻译自:Scikit Learn:Machine Learning in Python 作者: Fabian Pedregosa, Ga ...
- 机器学习入门资源不完全汇总
机器学习入门资源不完全汇总 基本概念|入门攻略|课程资源|论坛网站|东拉西扯 2014-10-14版, 好东西传送门编辑整理, 原文链接 http://ml.memect.com/article/ma ...
- 机器学习入门资源--汇总
机器学习入门资源--汇总 基本概念 机器学习 机器学习是近20多年兴起的一门多领域交叉学科,涉及概率论.统计学.逼近论.凸分析.算法复杂度理论等多门学科.机器学习理论主要是设计和分析一些让计算机可以自 ...
- 干货 | 机器学习入门方法和资料合集
作者 何从庆 授权自 AI算法之心 近些天在微信群里经常看小伙伴问到"机器学习如何入门,看哪些资料 ?",于是乎想根据笔者学习两年多的学习经验,介绍下机器学习如何入门,该看哪些资料 ...
- 机器学习入门学习资源
机器学习入门学习资源 [转载请注明出处]http://blog.csdn.net/guyuealian/article/details/51471085 这是一篇很难写的文章,因为我希望这篇文章能对学 ...
- 【小白必读】机器学习入门须知
一.机器学习入门浅谈 机器学习领域,又或者更大而化之的说人工智能方向,因为"阿尔法狗"等一系列的热门爆点话题,被推到了人前,受到越来越多人的关注. 无论你是什么领域的工作者,都一定 ...
- 我的机器学习入门清单及路线!
Datawhale干货 作者:桔了个仔,南洋理工大学,Datawhale成员 知乎:https://www.zhihu.com/people/huangzhe 这是我个人的机器学习入门清单及路线,所以 ...
- 机器学习入门学习资料推荐
今天介绍一些机器学习的学习资料,主要是分为以下几个方面的内容: 编程语言:实现机器学习,主要是介绍 Python 方面的语言: 书籍:看书通常是入门的一种方法,比较适合自律性强的同学: 视频:入门的第 ...
最新文章
- ABAP git客户端
- Facebook爆锤深度度量学习:该领域13年来并无进展!网友:沧海横流,方显英雄本色...
- Open-E DSS V7 应用系列之六 构建软件iSCSI
- 成为Web开发大师你必须知道的7件事情
- ftp工具之本地操作命令
- 软件项目管理0831:不要自我评价过高
- js(Dom+Bom)第八天—Swiper(插件)
- 信息学奥赛C++语言:顺序输出
- NOI2012 Day2
- 史上最惨创始人!250亿帝国如今8亿贱卖,还被兄弟亲手送进了监狱
- gitlab服务器代码存储位置,gitlab 数据目录迁移
- 车联网仿真测试解决方案
- 京瓷打印机p5026cdn_京瓷p5026cdn打印机驱动
- 什么是堆栈,堆和栈到底是不是一个概念
- 数据分析之matplotlib画图工具的使用(一)
- 【渝粤题库】广东开放大学 经济法实务 形成性考核
- 软件测试周刊(第36期):为什么你要当程序员?
- 时间戳90K是什么意思?
- 某IE订位源码分享与交流
- Tomcat双向SSL认证及CA数字证书安装和配置QQ即时通信协议窥探
热门文章
- Spring源码解析-实例化bean对象
- Java中的传值与传引用
- coreleft函数
- springboot springcloud区别_SpringBoot回顾、Spring Cloud初学
- 使用get set方法添减属性_头皮银屑病“克星”使用方法,你GET了吗?
- GIS工具篇(二):GIS最全数据下载指南
- CSDN光合计划-纯干货福利-推荐几个算法、分布式、数据库全系列学习教程(企业实用技术类)
- 用python验证猜想之类的例子_python练手好例子:验证哥德巴赫猜想
- java合并两个有序链表_JS实现的合并两个有序链表算法示例
- 郑州智慧岛大数据管委会_数据科学融通应用数学 ‖ 智慧岛大讲堂