ML sklearn快速入门

申明:该系列博客是学习 sklearn 的笔记,内容将涵盖大部分机器学习的方法。本人微博@迅猛龙Daniel,能力有限,存在任何问题,希望共同交流。该博客采用马克飞象专业版编写,感谢开发者@GGock。

环境:

  • ubuntu 12.04, 64 bits
  • python 2.7
  • sklearn 0.14

好几个月没有写博客了,现在闲着有空,把 sklearn 的基本模型学一学。实际上 scikit-learn 的学习材料非常非常齐全,建议英文好的同学直接看官方文档,我这个只能算是零散的辅助材料。

准备

sklearn 快速入门的官方文档在这里。这个文档主要描述机器学习的概念,以及如何加载数据训练模型保存模型

这里我还提供另外一个更加详细的材料,这份材料基于ipython notebook,可以在浏览器里运行代码,功能强大,演示效果非常好,github下载地址。如果电脑上没有安装git,请参考这篇博客进行设置。

  • 将材料下载到本地:

    git clone git@github.com:jakevdp/sklearn_pycon2013.git
  • 安装 ipython-notebook
    sudo easy_install "ipython>=0.13" jinja2 "tornado>=3.1.0" pyzmqsudo apt-get install ipython-notebook
  • 打开材料
    cd PATH/TO/sklearn_pycon2013/notebookipython notebook --pylab inline

    --pylab inline参数可以使 notebook 在浏览器里面直接画图效果

数据

sklearn 中的数据一般存放为二维数组,形状为 [n_samples, n_feartures]。比如著名的iris 数据集(鸢尾花)包含了三种类别的花(target),共 150 组数据(samples),每组数据由 4 个特征组成,具体来说就是:萼片的长度、萼片的宽度、花瓣的长度、花瓣的宽度。那么,iris 数据集的 data 就由 150*4 的二维数组组成。

sklearn 提供了很多数据集,一类比较小,直接打包在库中,可以通过datasets.load_ + Tab来查看,另一类比较大,需要下载,可以通过datasets.fetch_ + Tab查看,下载的目录可以通过sklearn.datasets.get_data_home()查看。

更详细的信息请参考 notebook 中的02_sklearn_data.ipynb文件。

接口

创建一个机器学习的模型很简单:

from sklearn.linear_model import LinearRegressionmodel = LinearRegression()print model

所有模型提供的接口有:

  • model.fit(): 实际上就是训练,对于监督模型来说是 fit(X, y),对于非监督模型是 fit(X)。

监督模型提供:

  • model.predict(X_new): 判别新样本
  • model.predict_proba(X_new): 某些模型可以输出概率,比如 LR,上一个输出的就是概率最大的 target
  • model.score(): 得分越高,fit 越好

非监督模型提供:

  • model.transform(): 将新数据转到新基空间
  • model.fit_transform(): 不懂。

下面这个图展示了这些接口在机器学习模型中的位置:

scikit-learn——快速入门 - daniel-D(转)的更多相关文章

  1. Vue.js 快速入门

    什么是Vue.js vue是法语中视图的意思,Vue.js是一个轻巧.高性能.可组件化的MVVM库,同时拥有非常容易上手的API.作者是尤雨溪,写下这篇文章时vue.js版本为1.0.7 准备 我推荐 ...

  2. 转:几十种编程语言的快速入门教程- learnxinyminutes.com

    原文来自于:http://top.jobbole.com/15551/ 这家网站的名称是 Learn X in Y minutes,包括了几十种编程语言的快速学习入门教程.打开几种编程语言来看了一下, ...

  3. Java转Ruby【快速入门】

    最近参加实习了,公司的技术栈中需要用到 Ruby 以及 Rails 框架,所以算是开始了踩坑之旅吧.. Ruby 简介 网上的简介要搜都能搜到,具体涉及的包括历史啦之类这里不再赘述,提几个关键词吧: ...

  4. JAVA WEB快速入门之通过一个简单的Spring项目了解Spring的核心(AOP、IOC)

    接上篇<JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构.调试.部署>,通过一个简单的JSP WEB网站了解了JAVA WEB相关的知识,比如:Ser ...

  5. Java快速入门-02-基础篇

    Java快速入门-02-基础篇 上一篇应该已经让0基础的人对 Java 有了一些了解,接一篇更进一步 使用 Eclipse 快捷键 这个老师一般都经常提,但是自己不容易记住,慢慢熟练 快捷键 快捷键作 ...

  6. Java快速入门-01-基础篇

    Java快速入门-01-基础篇 如果基础不好或者想学的很细,请参看:菜鸟教程-JAVA 本笔记适合快速学习,文章后面也会包含一些常见面试问题,记住快捷键操作,一些内容我就不转载了,直接附上链接,嘻嘻 ...

  7. Redis快速入门及实现

    redis的概念 (1)Redis的优点 以下是Redis的一些优点. 异常快 - Redis非常快,每秒可执行大约110000次的设置(SET)操作,每秒大约可执行81000次的读取/获取(GET) ...

  8. MyBatisPlus快速入门

    MyBatisPlus快速入门 官方网站 https://mp.baomidou.com/guide 慕课网视频 https://www.imooc.com/learn/1130 入门 https:/ ...

  9. WPF开发快速入门【7】WPF的拖放功能(Drag and Drop)

    概述 本文描述WPF的拖放功能(Drag and Drop). 拖放功能涉及到两个功能,一个就是拖,一个是放.拖放可以发生在两个控件之间,也可以在一个控件自己内部拖放.假设界面上有两个控件,一个Tre ...

随机推荐

  1. maven -- 问题解决(三)Java compiler level does not match the version of the installed Java project facet

    问题: Java compiler level does not match the version of the installed Java project facet 解决方法如下: prope ...

  2. 老菜鸟致青春,程序员应该选择java 还是 c#-

    致青春 还记得自己那年考清华失败,被调剂到中科大软院,当初有几个方向可以选,软件设计.嵌入式.信息安全等等,毫不犹豫地选择了信息安全. 为什么选信息安全?这四个字听起来多牛多有感觉,我本科是学物理的, ...

  3. Token以及签名signature的设计与实现

    LZ第一次给app写开放接口,把自己处理Token的实现记录下来,目的是如果以后遇到好的实现,能在此基础上改进.这一版写法非常粗糙,写出来就是让大家批评的,多多指教,感谢大家. 当初设计这块想达到的效 ...

  4. Visual studio 2010出现“error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏”解决方式

    本来自己的电脑上装了VS2010,因为开发Cocos2d-x 3.x,所以就在自己的机器上装了一个VS2012. 但是.这不装不要紧,debug一下自己原来的程序,结果出现了"error L ...

  5. linux socket TCP UDP bind 同义IP和port

    //TCP and UDP can bind to the same IP & port. #include <sys/types.h> #include <sys/sock ...

  6. .Net Discovery 系列之六--深入浅出.Net实时编译机制(下)

    接上文 在初始化时,HashTable中各个方法指向的并不是对应的内存入口地址,而是一个JIT预编译代理,这个函数负责将方法编译为本地代码.注意,这里JIT还没有进行编译,只是建立了方法表! 下表(表 ...

  7. Delphi实例分析:远程传输数据和文件

    在Windows操作系统的平台上,WinSock是首选的网络编程接口,用于在网络上传输数据和交换信息,它构成了Windows操作系统进行网络编程的基础.对于编写网络应用程序来说,WinSock是一门非 ...

  8. springboot实现服务器端消息推送(websocket + sockjs + stomp)

    服务器端推送技术在web开发中比较常用,可能早期很多人的解决方案是采用ajax向服务器轮询消息,这种方式的轮询频率不好控制,所以大大增加了服务器的压力,后来有了下面的方案:当客户端向服务器发送请求时, ...

  9. 查看docker容器日志

    sudo docker logs -f -t --tail 10 my-openldap-container(container ID)

  10. 女子监狱第四季/全集Orange Is the New Black迅雷下载

    女子监狱 第三季 Orange Is the New Black 3 (2015) 本季看点:该剧由<吉尔莫女孩>.<单身毒妈第一季>编剧杰姬·科恩的打造.由<护士当家& ...