机器学习及scikit-learn
一、机器学习以及scikit-learn
1. 机器学习基本步骤:
(1)定义一系列函数 => (2)定义函数的优劣 => (3)选择最优函数
2.什么是scikit-learn?
(1)面向python的免费机器学习库
(2)包含分类、回归、聚类算法,比如:SVM、随机森林、k-means等
(3)包含降维、模型选择、预处理等算法
(4)支持Numpy和Scipy数据结构
(5)用户
(6)安装:pip install scikit-learn
pip install scikit-learn
3.上手:
(1)加载数据集
iris
digits
(2)在训练集上训练模型
svm模型
.fit()训练模型
(3)在测试集上测试模型
.predict()进行预测
(4)保存模型
.pickle.dumps()
4.使用scikit-learn的流程
准备数据集===》选择模型===》训练模型===》测试数据
数据处理 根据任务选择 根据经验 预测
特征工程 模型 设动参数 识别
训练集、 分类模型 交叉验证
测试集分割 回归模型 确定最优参数
聚类模型
5.准备数据集:
(1)数据准备:
数据集格式
二维数组,形状(n_samples,n_features),行数是样本的个数,列数是特征的个数
使用np.reshape()转换数据集的形状
(2)特征工程
特征提取,如图片的特征提取
特征归一化(normalization),
(3)train_test_split()分割训练集、测试集
分类、回归、聚类
训练模型
(4)训练模型
Estimator对象
从训练数据学习得到的
可以是分类算法、回归算法或者是特征提取算法
fit方法用于训练Estimator
Estimator的参数可以训练前初始化,或者之后更新
get_params()返回之前定义的参数
score()对Estimator进行评分
回归模型:使用“决定系数”评分(Coefficient of Determination)
分类模型:使用“准确率”评分(accuracy)训练误差
6.调整参数
(1)依靠经验
(2)依靠实验、交叉验证cv(cross validation)
二、机器学习:问题描述
1.“学习”问题通常包含n个样本数据(训练样本),然后预测未知数据(测试样本)的属性
2.每个样本包含多个属性(多维数据)被称作“特征”,特征的归一化,将数据范围缩放,缩放进入同一个范围。
当两个特征的范围不一样的时候,θ1是房屋大小,θ2是卧室个数,当两个值不一样的时候,学习出来的可能是下面作图所示的椭圆形状,如右图所示做归一化,直接进行缩放操作,在scikit_learn中做归一化的操作是:preprocessing.scale

3.分类:
(1)监督学习,训练样本包含对应的标签,“如识别问题”
分类问题,样本标签属于两个或者多各类
回归问题,样本标签包括一个或者多个连续变量
(2)无监督学习,训练样本的属性不包含对应的“标签”,如聚类问题
(3)训练集vs验证集vs测试集

在没有生产的阶段,没有新的数据,通常会将原始数据集分为三部分:训练集、测试集和验证集,训练集用来训练模型,验证集用来选择最佳模型,调整参数,测试集用来测试模型
机器学习及scikit-learn的更多相关文章
- 机器学习框架Scikit Learn的学习
一 安装 安装pip 代码如下:# wget "https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=83 ...
- 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. 交叉 ...
- scikit learn 模块 调参 pipeline+girdsearch 数据举例:文档分类 (python代码)
scikit learn 模块 调参 pipeline+girdsearch 数据举例:文档分类数据集 fetch_20newsgroups #-*- coding: UTF-8 -*- import ...
- Scikit Learn
Scikit Learn Scikit-Learn简称sklearn,基于 Python 语言的,简单高效的数据挖掘和数据分析工具,建立在 NumPy,SciPy 和 matplotlib 上.
- 机器学习-scikit learn学习笔记
scikit-learn官网:http://scikit-learn.org/stable/ 通常情况下,一个学习问题会包含一组学习样本数据,计算机通过对样本数据的学习,尝试对未知数据进行预测. 学习 ...
- Query意图分析:记一次完整的机器学习过程(scikit learn library学习笔记)
所谓学习问题,是指观察由n个样本组成的集合,并根据这些数据来预测未知数据的性质. 学习任务(一个二分类问题): 区分一个普通的互联网检索Query是否具有某个垂直领域的意图.假设现在有一个O2O领域的 ...
- Python第三方库(模块)"scikit learn"以及其他库的安装
scikit-learn是一个用于机器学习的 Python 模块. 其主页:http://scikit-learn.org/stable/. GitHub地址: https://github.com/ ...
- Linear Regression with Scikit Learn
Before you read This is a demo or practice about how to use Simple-Linear-Regression in scikit-lear ...
随机推荐
- IDM非补丁破解方法
参考 http://tieba.baidu.com/p/3878377959 备份文章 在网络和共享中心中打开防火墙 高级设置->出站规则->新建规则 打开新建规则向导. 程序-> ...
- ThreadPool用法与优势
1. 线程池的优点: 合理利用线程池能够带来三个好处.第一:降低资源消耗.通过重复利用已创建的线程降低线程创建和销毁造成的消耗.第二:提高响应速度.当任务到达时,任务可以不需要等到线程创建就能立即执 ...
- C++入门经典-例3.15-使用do-while循环计算1到10的累加
1:代码如下: // 3.15.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> usin ...
- 剑指offer31----栈的压入、弹出序列
题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对 ...
- 百度echars 插件 横坐标信息倾斜显示
只需要 在xAxis 中加入 axisLabel:{ interval:0,//横轴信息全部显示 ...
- Singletom 单例
class Singletom { //最差写法.构造方法是public的,有可能会被new出多个,那就不是单例了. public Singletom(){ } public static Singl ...
- redhat下配置SEED DVS6446开发环境3
1.运行arm_v5t_le-gcc,报错为: 64bit的Linux操作系统,无法运行32bit的应用程序 /lib/ld-linux.so.2: bad ELF interpreter: No s ...
- 【翻译】WPF应用程序模块化开发快速入门(使用Prism+MEF)
编译并运行快速入门 需要在VisualStudio 2010上运行此快速入门示例 代码下载:ModularityWithMef.zip 先重新生成解决方案 再按F5运行此示例 说明: 在此快速入门示例 ...
- SweetAlert(弹出层插件)
怀着非常.非常恼火的心情写下这个博文.我深深怀疑有一些人只会瞎粘贴复制别人的博文,自己试都不试就发布到网上,左右看的人想法,就此深通恶绝!! 废话不多说. SweetAlert是一个简洁好用的自制Al ...
- Python学习之==>循环
1.While循环 # 循环的时候是在重复执行循环体里面的东西 # 在循环体里面遇到break,立即结束循环,不管循环有没有完 # 在循环体里面遇到continue,那么就结束本次循环,继续进行下一次 ...