scikit-learn 机器学习库
一 介绍
scikit-learn是Python的一个开源机器学习模块,它建立在NumPy,SciPy和matplotlib模块之上。值得一提的是,scikit-learn最先是由David Cournapeau在2007年发起的一个Google Summer of Code项目,从那时起这个项目就已经拥有很多的贡献者了,而且该项目目前为止也是由一个志愿者团队在维护着。
scikit-learn最大的特点就是,为用户提供各种机器学习算法接口,可以让用户简单、高效地进行数据挖掘和数据分析。
scikit-learn主页:scikit-learn homepage
二 安装
scikit-learn的安装方法有很多种,而且也是适用于各种主流操作系统,scikit-learn主页上也分别详细地介绍了在不同操作系统下的三种安装方法,具体安装详情请移步至 installing scikit-learn。
三 scikit-learn载入数据
scikit-learn内包含了常用的机器学习数据集,比如做分类的iris和digit数据集,用于回归的经典数据集Boston house prices。
scikit-learn载入数据集实例:
from sklearn import datasets
iris = datasets.load_iris()
scikit-learn载入的数据集是以类似于字典的形式存放的,该对象中包含了所有有关该数据的数据信息(甚至还有参考文献)。其中的数据值统一存放在.data的成员中,比如我们要将iris数据显示出来,只需显示iris的data成员:
print (iris.data)
数据都是以n维(n个特征)矩阵形式存放和展现,iris数据中每个实例有4维特征,分别为:sepal length、sepal width、petal length和petal width。显示iris数据:
[[ 5.1 3.5 1.4 0.2]
[ 4.9 3. 1.4 0.2]
... ...
[ 5.9 3. 5.1 1.8]]
如果是对于监督学习,比如分类问题,数据中会包含对应的分类结果,其存在.target成员中:
print (iris.target)
对于iris数据而言,就是各个实例的分类结果:
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]
四 scikit-learn学习与预测
scikit-learn提供了各种机器学习算法的接口,允许用户可以很方便地使用。每个算法的调用就像一个黑箱,对于用户来说,我们只需要根据自己的需求,设置相应的参数。
比如,调用最常用的支撑向量分类机(SVC):
from sklearn import svm
clf = svm.SVC(gamma=0.001, C=100.) #不希望使用默认参数,使用用户自己给定的参数
print (clf)
分类器的具体信息和参数:
SVC(C=100.0, cache_size=200, class_weight=None, coef0=0.0, degree=3,
gamma=0.001, kernel='rbf', max_iter=-1, probability=False,
random_state=None, shrinking=True, tol=0.001, verbose=False)
分类器的学习和预测可以分别利用 fit(X,Y) 和 predict(T) 来实现。
例如,将digit数据划分为训练集和测试集,前n-1个实例为训练集,最后一个为测试集(这里只是举例说明fit和predict函数的使用)。然后利用fit和predict分别完成学习和预测,代码如下:
from sklearn import datasets
from sklearn import svm
clf = svm.SVC(gamma=0.001, C=100.)
digits = datasets.load_digits()
clf.fit(digits.data[:-1], digits.target[:-1])
result=clf.predict(digits.data[-1])
print (result)
预测结果为:[8]
我们可以通过程序来查看测试集中的手写体实例到底长什么样来简单验证一下分类效果,代码和结果如下所示:
import matplotlib.pyplot as plot
plot.figure(1, figsize=(3, 3))
plot.imshow(digits.images[-1], cmap=plot.cm.gray_r, interpolation='nearest')
plot.show()

我们可以看到,这就是一个手写的数字“8”的,实际上正确的分类也是“8”。我们通过这个简单的例子,就是为了简单的学习如何来使用scikit-learn来解决分类问题,实际上这个问题要复杂得多。(PS:学习就是循序渐进,弄懂一个例子,就会弄懂第二个,... ,然后就是第n个,最后就会形成自己的知识和理论,你就可以轻松掌握,来解决各种遇到的复杂问题。)
参考:Python机器学习 scikit-learn机器学习库
scikit-learn 机器学习库的更多相关文章
- Scikit Learn: 在python中机器学习
转自:http://my.oschina.net/u/175377/blog/84420#OSC_h2_23 Scikit Learn: 在python中机器学习 Warning 警告:有些没能理解的 ...
- (原创)(三)机器学习笔记之Scikit Learn的线性回归模型初探
一.Scikit Learn中使用estimator三部曲 1. 构造estimator 2. 训练模型:fit 3. 利用模型进行预测:predict 二.模型评价 模型训练好后,度量模型拟合效果的 ...
- (原创)(四)机器学习笔记之Scikit Learn的Logistic回归初探
目录 5.3 使用LogisticRegressionCV进行正则化的 Logistic Regression 参数调优 一.Scikit Learn中有关logistics回归函数的介绍 1. 交叉 ...
- 常用python机器学习库总结
开始学习Python,之后渐渐成为我学习工作中的第一辅助脚本语言,虽然开发语言是Java,但平时的很多文本数据处理任务都交给了Python.这些年来,接触和使用了很多Python工具包,特别是在文本处 ...
- [Python & Machine Learning] 学习笔记之scikit-learn机器学习库
1. scikit-learn介绍 scikit-learn是Python的一个开源机器学习模块,它建立在NumPy,SciPy和matplotlib模块之上.值得一提的是,scikit-learn最 ...
- [Python] 机器学习库资料汇总
声明:以下内容转载自平行宇宙. Python在科学计算领域,有两个重要的扩展模块:Numpy和Scipy.其中Numpy是一个用python实现的科学计算包.包括: 一个强大的N维数组对象Array: ...
- [resource]Python机器学习库
reference: http://qxde01.blog.163.com/blog/static/67335744201368101922991/ Python在科学计算领域,有两个重要的扩展模块: ...
- 机器学习库shark安装
经过两天的折腾,一个对c++和机器学习库的安装都一知半解的人终于在反复安装中,成功的将shark库安装好了,小小纪念一下,多亏了卡门的热心帮忙. shark的安装主要分为以下几个部分: (1)下载 s ...
- 《Spark 官方文档》机器学习库(MLlib)指南
spark-2.0.2 机器学习库(MLlib)指南 MLlib是Spark的机器学习(ML)库.旨在简化机器学习的工程实践工作,并方便扩展到更大规模.MLlib由一些通用的学习算法和工具组成,包括分 ...
- Python机器学习库scikit-learn实践
原文:http://blog.csdn.net/zouxy09/article/details/48903179 一.概述 机器学习算法在近几年大数据点燃的热火熏陶下已经变得被人所“熟知”,就算不懂得 ...
随机推荐
- php之laravel学习
http://laravel-china.github.io/php-the-right-way/#composer_and_packagist laravel 添加 dingoapi路由插件 并运用 ...
- microsoft windows network 不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接
运行CMD在命令行中运行net use * /del /y 命令中断开所有连接最后,你再次访问 ,就不会有问题了. 而且可以连接多个samba用户.
- 用PowerShell在China Azure创建ARM虚拟机
Azure目前有两种工作模式:ASM和ARM. 在国内的Azure,我们都是使用ASM的模式.但这种模式有很多限制,比如每个VM必须有一个公网地址,部署不能批量部署等等.ARM对Azure的整体架构做 ...
- 关于jsp和html页面中的三种弹出框
代码: <!-- 引入jquery 由于在下面使用jquery选择器,与弹出框无关 --> <script type="text/javascript" src= ...
- QQ控件时光轴特效总结
1.插入HTML数据 插入html代码,一般的做法是通过document.getElementById("").innerHTML来实现. 然而在该控件中,它通过JS replac ...
- 开发环境入门 linux基础 (部分)nginx和nfs
nginx和nfs 复习总结 rpm -ivh 软件包 --nodeps (没有依赖性安装) rpm -ivh 软件包 --force (覆盖安装) yum -y upgrade 升级所有包,不改变软 ...
- mac 下 配置appium +ios真机环境
mac系统:10.11.6 xcode:7 appium:1.5.3 iphone: 6 p 1.搭建 appium 安卓的环境: 1.jdk 2.sdk 3.appium 4.配置环境变量 mac下 ...
- 问题:oracle case when;结果:Oracle CASE WHEN 用法介绍
Oracle CASE WHEN 用法介绍 1. CASE WHEN 表达式有两种形式 --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ...
- [mpm_winnt:error] [pid 28120:tid 15980] (OS 10038)在一个非套接字上尝试了一个操作。 : AH00332: winnt_accept: getsockname error on listening socket, is IPv6 available?
解决办法一: 可能是安装了某些程序修改了Winsock,使用netsh winsock reset 命令修复Winsock重启计算机即可! 解决办法二: 在httpd.conf文件中添加 Win32D ...
- JavaSwing文件选择器 JFileChooser的使用
先看效果吧! 说明:选择文件或者文件夹.本例子就直接在控制台输出文件或者文件夹的路径.实际开发中,就可以将文件或文件夹的路径封装为File的实例来使用了. package test; import j ...