机器学习数据的划分和介绍
一、sklearn数据集
(一)数据集划分
1、机器学习一般的数据集会划分为两个部分:
训练数据:用于训练,构建模型;
测试数据:在模型检验时使用,用于评估模型是否有效。
2、sklearn数据集划分API
sklearn.model_selection.train_test_split
3、数据集进行分割
(1)sklearn.model_selection.train_test_split(arrays, **options)
x:数据集的特征值
y:数据集的标签值
test_size:测试集的大小,一般为float
random_state:随机数种子,不同的种子会造成不同的随机采样结果。相同的种子采样结果相同。
return:训练集特征值,测试集特征值,训练标签,测试标签(默认随机取)
例如:
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
li = load_iris()
#注意返回值,训练集 train x_train,y_train 测试集 test x_test,y_test
x_train,x_test,y_train,y_test = train_test_split(li.data,li.target,test_size=0.25)
print(“训练集特征值和目标值:”,x_train,y_train)
print(“测试集特征值和目标值:”,x_test,y_test)
(2)用于分类的大数据集
sklearn.datasets.fetch_20newsgroups(data_home=None,subset=‘train’)
subset: ‘train’或者’test’,‘all’,可选,选择要加载的数据集.
训练集的“训练”,测试集的“测试”,两者的“全部”
datasets.clear_data_home(data_home=None)清除目录下的数据
例如:
from sklearn.datasets import load_iris,fetch_20newsgroups
from sklearn.model_selection import train_test_split
li = load_iris()
news=fetch_20newsgroups(subset=‘all’)
print(news.data)
print(news.target)
(二)sklearn数据集接口介绍
sklearn.datasets加载获取流行数据集
1、datasets.load_()获取小规模数据集(几百几千个数据),数据包含在datasets里,在本地已有
2、datasets.fetch_(data_home=None)获取大规模数据集(几千几万个数据),需要从网上下载,函数的第一个参数是data_home,表示数据集下载的目录,默认是~/scikit_learn_data/
3、获取数据集返回的类型
load和fetch*返回的数据类型datasets.base.Bunch(字典格式)
data:特征数据数组,是 [n_samples * n_features] 的二维
numpy.ndarray 数组
target:标签数组,是 n_samples 的一维 numpy.ndarray 数组
DESCR:数据描述
feature_names:特征名,新闻数据,手写数字、回归数据集没有
target_names:标签名,回归数据集没有
(三)sklearn分类数据集
例如:
from sklearn.datasets import load_iris
li = load_iris()
print(‘获取特征值’)
print(li.data)
print(‘目标值’)
print(li.target)
print(li.target_names)
(四)sklearn回归数据集
例如:
from sklearn.datasets import load_iris,load_boston
li= load_iris()
lb= load_boston()
print(‘获取特征值’)
print(lb.data)
print(‘目标值’)
print(lb.target)