机器学习与应用
第二天 机器学习与应用
- 1.sklearn数据集与估计器
- 2.分类算法k近邻算法
一 sklearn 数据集与估计器
1.1 sklearn 数据集
- 数据集划分
- sklearn数据集接口介绍
- sklearn分类数据集
- sklearn回归数据集
1.1.1 数据集的划分
数据集划分
思考:如果数据集全部用于训练模型,有什么问题?
只训练了模型,没有数据集对模型进行验证,没有模型的调优
机器学习数据集划分为训练数据和测试数据:
训练数据:运用训练,构建模型
测试数据:在模型检验时使用,用于评估模型是否有效
1.1.2 数据集API
sklearn数据集划分API
sklearn.model_selection.train_test_split
机器学习为什么不自己准备数据
自己准备数据集,耗时耗力,不一定真实。
1.1.2.1 sklearn 数据集API介绍
sklearn.datasets
加载获取流行数据集
datasets.load_*()
获取小规模数据集,数据包含在datasets里
datasets.fetch_*(data_home=None)
获取大规模数据集,需要从网络上下载,函数的第一个参数data_home,表示数据集下载的目录,默认是 ~/scikit_learn_data/
1.1.2.2 获取数据集返回的类型
load和fetch返回的数据类型datasets.base.Bunch(字典格式)
data:特征数据数组,是 [n_samples * n_features] 的二维 numpy.ndarray 数组
target:标签数组,是 n_samples 的一维 numpy.ndarray 数组
DESCR:数据描述
feature_names:特征名,新闻数据,手写数字、回归数据集没有
target_names:标签名,回归数据集没有
1.1.2.3 数据集进行分割
sklearn.model_selection.train_test_split(*arrays, **options)
x 数据集的特征值
y 数据集的标签值
test_size 测试集的大小,一般为float
random_state 随机数种子,不同的种子会造成不同的随机
采样结果。相同的种子采样结果相同。
return 训练集特征值,测试集特征值,训练标签,测试标签
(默认随机取)
1.1.2 转换器与预估器
想一下之前做的特征工程的步骤?
1、实例化 (实例化的是一个转换器类(Transformer))
2、调用fit_transform(对于文档建立分类词频矩阵,不能同时调用)
1.1.2.1 sklearn机器学习算法的实现-估计器
在sklearn中,估计器(estimator)是一个重要的角色,分类器和回归器都属于estimator,是一类实现了算法的API
1、用于分类的估计器:
sklearn.neighbors k-近邻算法
sklearn.naive_bayes 贝叶斯
sklearn.linear_model.LogisticRegression 逻辑回归
sklearn.tree 决策树与随机森林
2、用于回归的估计器:
sklearn.linear_model.LinearRegression 线性回归
sklearn.linear_model.Ridge 岭回归