本篇文章主要介绍sklearn数据集及其分类,快速获取用于学习的数据。
数据集划分
机器学习一般的数据集会划分为两个部分:
训练数据:用于训练,构建模型
测试数据:在模型检验时使用,用于评估模型是否有效
训练数据和测试数据出自同一数据源,只是会把数据源的百分之八十左右当做训练数据,剩下当做测试数据。数据的划分无需自己动手划分,sklearn有对应的api自动划分。评估模型算法不同,评估的方式也不同。
数据划分api
划分api:
sklearn.model_selection.train_test_split
数据集api:
sklearn.datasets
? 加载获取流行数据集
? datasets.load_*()
? 获取小规模数据集,数据包含在datasets里
? datasets.fetch_*(data_home=None)
? 获取大规模数据集,需要从网络上下载,函数的第一个参数是data_home,表示数据下载的目录,默认是 ~/scikit_learn_data/
? load*和fetch*返回的数据类型datasets.base.Bunch(字典格式)
? data:特征数据数组,是 [n_samples * n_features] 的二维
numpy.ndarray 数组
? target:目标值,标签数组,是 n_samples 的一维 numpy.ndarray 数组
? DESCR:数据描述
? feature_names:特征名,新闻数据,手写数字、回归数据集没有
? target_names:标签名,回归数据集没有
分类数据集
sklearn.datasets.load_iris() 加载并返回鸢尾花数据集
少量数据实例:
from sklearn.datasets import load_iris li = load_iris() print("特征数据数组") print(li.data) print("目标值") print(li.target) print("特征名") print(li.feature_names) print("目标值") print(li.target_names) # print("数据描述") # print(li.DESCR) # x表示特征值,y表示目标值 x_train, x_test, y_train, y_test = model_selection.train_test_split(li.data, li.target, test_size=0.25) print("训练集的特征值和目标值", x_train, y_train) print("测试集的特征值和目标值", x_test, y_test)
大数据集实例:
from sklearn.datasets import fetch_20newsgroups news = fetch_20newsgroups(subset='all') print(news.data) print(news.target)
需要下载数据,执行结果会比较多,数量大
回归数据集
sklearn.datasets.load_boston() 加载并返回波士顿房价数据集
from sklearn.datasets import load_iris, fetch_20newsgroups, load_boston lb = load_boston() print("获取特征值") print(lb.data) print("目标值") print(lb.target)