sklearn调包侠之无敌小抄

scikit-learn(以下简称为sklearn)是用Python开发的机器学习库,其中包含大量机器学习算法、数据集,是数据挖掘方便的工具。本教程参考《Python机器学习及实战》、《scikit-learn机器学习》和sklearn的官方文档,详细讲解如何使用sklearn实现机器学习算法。首先,依旧讲讲写本系列教程的原因:第一,相比于直接编写各种算法,sklearn简单容易上手;第二,参考书籍有些部分讲解不细致,sklearn版本的更新,官方文档虽然齐全,但是是英文等等,希望通过编写这个教程,可以让读者轻松上手机器学习;第三,依旧是本人的学习记录过程。

本系列教程特点:

  • 好学易用
  • 案例实操多

哪些读者可以使用:

  • 了解机器学习的基本术语
  • 会Python语言
  • 会numpy和pandas库的使用

sklearn小抄

在愉悦的做一个调包侠之前,老衲给予施主一份绝世宝典(sklearn小抄),之后你的任督二脉将会打开,在sklearn调包的路上所向披靡。首先上宝典,高清pdf请前往此处下载: (链接:https://pan.baidu.com/s/12c0CIP6c6rgc4Y5zEnUJxA 密码:13au)。

数据导入

sklearn支持的数据格式有numpy数组和pandas的DataFrame格式,当然,sklearn也提供了一些数据集,通过下面代码可以导入数据集(具体数据集见后文)。

from sklearn import datasets
数据预处理

“garbage in garbage out”,一个好的模型很大程度上基于一个干净有效的源数据,所以在训练模型之前,需要针对已有数据进行清洗和处理。数据预处理的方法有很多:数据的缺失值清洗;数据标准化/中心化/归一化;哑编码;生成多项式特征等等,这个需要根据具体的数据进行相对应的处理。

模型选择

针对不同的问题需要选择不同的模型,有label标签且为离散值的为分类,有label标签且为连续值的是回归,无label的就要用无监督的方法了。但针对某个特定问题,如何选择算法了,可以看下图。 但很不幸的是:“没有免费的午餐定理”告诉我们,脱离具体问题去讨论选择什么算法更好是毫无意义的,在现实建模中,我们通过多个模型比较评估结果来选择最终模型。

模型训练

在模型训练前,需要将数据集切分为训练集和测试集(73开或者其它)。sklearn训练模型很简单,在具体实例中讲解。

模型测试

针对不同类模型,模型的评价指标都不同,具体可看小抄和sklearn.metrics模块。在模型测试中,我们常常使用交叉验证的方法。

模型优化

模型一般都是有很多参数的,如何选择最优的参数,可使用网格搜索和随机参数优化。

tips

针对各个过程的详细介绍,会在具体案例中讲解。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏码匠的流水账

zuul自定义SimpleHostRoutingFilter

zuul的SimpleHostRoutingFilter主要用来转发不走eureka的proxy,里头是使用httpclient来转发请求的,但是有时候我们需要...

1292
来自专栏hbbliyong

socket 通信 多线程调用窗体(委托)的几个知识点,记录在案,以备查阅

1.socket 通信传输汉字的方法:Encoding.GetEncoding("GB2312").GetString(Receivebyte) 发送接收都这样...

2737
来自专栏自由而无用的灵魂的碎碎念

小项目分享---混色器

编写代码的同志们一般懂美术的就少了,偶也是,什么色轮、三维加色等等。虽然看过一些书籍(如内田广由纪的《配色基础原理》),不过还是一知半解的。

963
来自专栏菩提树下的杨过

基于sliverlight + wcf的web 文字版IM 示例

演示地址: http://task.24city.com/default.html 预览界面: ? 一、布局 采用Grid布局,5行2列 第一行:为登录/注册信...

3226
来自专栏田超学前端

【微信小程序】c# 实现获取openid、session_key 服务端

5000
来自专栏跟着阿笨一起玩NET

treeview 绑定文件夹和文件

451
来自专栏技术之路

sqlserver 的事务和c#的事务

sql的事务 1 sql 2 create database model 3 go 4 use model 5 go 6 create table ...

1919
来自专栏大内老A

开发自己的Data Access Application Block[下篇]

上接:[原创] 我的ORM: 开发自己的Data Access Application Block - Part I 4. Database 下面来介绍重中之重...

2236
来自专栏木宛城主

曾今的代码系列——自己的分页控件+存储过程实现分页

项目里面的测试代码,仅供参考 LoginByAjax <title>Ajax登陆</title> <script src="Scripts/c...

1855
来自专栏james大数据架构

CSS好看的按钮

好看的按钮 <style> .btn { BORDER-RIGHT: #7b9ebd 1px solid; PADDING-RIGHT: 2px; BORDE...

1997

扫码关注云+社区