前言
sklearn全称scikit-learn,是针对Python 编程语言的免费软件机器学习库,它提供了大量用于测试学习算法的数据集。
sklearn数据集
数据集的导入
- 获取小规模数据集:sklearn.datasets.load_*
eg:
sklearn.datasets.load_iris() 加载并返回鸢尾花数据集
sklearn.datasets.load_boston() 加载并返回波斯顿房价数据集
- 获取大规模数据集:sklearn.datasets.fetch_*
eg:
sklearn.datasets.fetch_20newsgroups(data_home=None,subset='train')
注:subset:“train”或者“test”,“all”,可选,选择要加载的数据集
数据集返回值
load和fetch返回的数据类型datasets.base.Bunch(字典格式)
具体返回值如下:
- data:特征数据数组,是[n_samples*n_features]的二维numpy.ndarray数组
- target:标签数组
- DESCR:数据描述
- feature_names:特征名
- target_names:标签名
数据集划分
(1)机器学习一般的数据集会划分为两个部分:
- 训练集:用于训练,构建模型
- 测试数据:在模型检验时使用,用于评估模型是否有效
划分比例:
- 训练集:70% 80% 75%
- 测试集:30% 20% 30%
(2)划分API
sklearn.model_selection.train_test_split(x,y,test_size,random_state)
- x:数据集的特征值
- y:数据集的标签值
- test_size:测试集的大小,一般为float
- random_state:随机数种子,不同的种子会造成不同的随机采样结果。相同的种子采样结果相同
- return 训练集特征值,测试集特征值,训练集目标值,测试集目标值(返回值包含这四部分)
代码展示
from sklearn.datasets import load_iris
def datasets_demo():
# 导入鸢尾花数据集
iris=load_iris()
print("鸢尾花数据集:\n",iris)
print("查看数据集描述:\n", iris["DESCR"])
print("查看数据集描述:\n", iris.DESCR)
# 数据集划分
x_train,x_test,y_train,y_test=train_test_split(iris.data,iris.target,test_size=0.2,random_state=22)
print("训练集的特征值:\n",x_train,x_train.shape)
return None