机器学习及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测试集
在没有生产的阶段,没有新的数据,通常会将原始数据集分为三部分:训练集、测试集和验证集,训练集用来训练模型,验证集用来选择最佳模型,调整参数,测试集用来测试模型