数据集划分
机器学习一般的数据集会划分为两个部分:
(1)训练数据。用于训练,构建模型。
(2)测试数据。在模型检验时使用,用于评估模型是否有效。
训练数据和测试数据划分比例可以为:70%和30%、80%和20%、75%和25%(较为常用)。
sklearn 数据集划分API
sklearn.model_selection.train_test_split(x,y,**options)
x: 数据集的特征值;
y: 数据集的目标值(标签)
test_size : 测试集的大小,一般为float
random_sate: 随机数种子,不同的种子会造成不同的采样结果。相同种子的采样结果相同。
返回值:训练特征值,测试特征值,训练目标值,测试目标值(其中样本顺序自动打乱)
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
li = load_iris()
# 注意返回值:训练集特征值x_train,测试集特征值x_test;y_train,y_test
x_train, x_test, y_train, y_test = train_test_split(li.data, li.target, test_size=0.25)
print(x_train)
print(y_train)
sklearn数据集加载API
- sklearn.datasets
(1)datasets.load_()
获取小规模数据集,数据包含在datasats里
(2)datasets.fetch_(data_home = None)
获取大规模数据集,需要从网络上下载,函数的第一个参数data_home为数据集的下载目录,默认是~/scikit_learn_data/ - 获取数据集返回的类型
load和fetch返回的数据类型datasets.base.Bunch(字典格式)
(1)data: 特征数据数据,是[n_samples,n_features]的二维np.ndarray数组;
(2)target:标签数组,是n_samples的一维np.ndarray数组;
(3)DESCR:数据描述
(4)feature_names:特征名(新闻数据、手写数字、回归数据集没有)
(5)target_names:标签名
from sklearn.datasets import load_iris
li = load_iris()
print(li.data)
print(li.target)
print(li.DESCR)
运行结果:
用于分类的大数据集:
from sklearn.datasets import fetch_20newsgroups
# subset:可选train、test 或 all,选择要加载的数据集(训练集/测试集),可选择all,然后自己划分
news = fetch_20newsgroups(subset="all")
print(news.data)
print(news.target)
转换器与预估器
转换器
转换器是实现了特征工程的API。
回忆之前做特征工程的步骤:
- 实例化(实例化的是一个转换器类–Transformer);
- 调用fit_transfrom(对于文档建立分类词频矩阵,不能同时调用)。
用fit的计算结果进行transform
预估器
在sklearn中,预估器(estimator)是一类实现了算法的API。
- 用于分类的预估器:
sklearn.neighbors:k近邻算法
sklearn.naive_bayes:贝叶斯
sklearn.linear_model.LogisticRegression: 逻辑回归
sklearn.tree:决策树与随机森林 - 用于回归的估计器
sklearn.linear_model.LinearRegression: 线性回归
sklearn.linear_model.Ridge:岭回归
拜师教育学员文章:作者:1191-杨同学,
转载或复制请以 超链接形式 并注明出处 拜师资源博客。
原文地址:《机器学习5—数据集的划分》 发布于2020-07-25
评论 抢沙发