"""
数据的两部分:
训练集:用于训练,构建模型
测试集:在模型检验时使用,用于评估模型是否有效
训练集与测试集的常用数据量比:7-3、8-2、7.5-2.5(此比例较好,使用较多)
划分数据的api:sklearn.model_selection.train_test_split
数据集:
sklearn.datasets
加载获取流行数据集
datasets.load_*()
获取小规模数据集,数据包含在datasets里。即本地已经有了
datasets.fetch_*(data_home=None)
获取大规模数据集,需要从网络上下载,函数的第一个参数是data_home,表示数据集
下载的目录,默认是 ~/scikit_learn_data/
sklearn获取数据集的格式:
load*和fetch*返回的数据类型datasets.base.Bunch(字典格式)
data:特征数据数组,是 [n_samples * n_features] 的二维
numpy.ndarray 数组
target:标签数组,是 n_samples 的一维 numpy.ndarray 数组
DESCR:数据描述
feature_names:特征名,新闻数据,手写数字、回归数据集没有
target_names:标签名,回归数据集没有
sklearn分类数据集:
离散数据集:
sklearn.datasets.load_iris() #加载并返回鸢尾花数据集
sklarrn.datasets.lodd_digits() #加载并返回数字数据集
大数据集:
sklearn.datasets.fetch_20newgroups(data_home, subset) #用于分类的大数据集,新闻数据集,新闻有20个类别,subset一般取all,然后自己split
回归数据集:
sklearn.datasets.load_boston() #加载并返回波士顿房价数据集
sklearn.datasets.load_diabetes() #加载和返回糖尿病数据集
数据集的分割:
sklearn.model_selection.train_test_split(*arrays, **options)
x 数据集的特征值
y 数据集的标签值
test_size 测试集的大小,一般为float,比如20%,30%等
random_state 随机数种子,不同的种子会造成不同的随机采样结果。相同的种子采样结果相同。
return 训练集特征值,测试集特征值,训练标签,测试标签
(默认随机取)
"""
from sklearn.datasets import load_iris
li = load_iris() #li的类型为datasets.base.Bunch(字典格式)
print("特征值:", li.data) #获取特征值,二维数组。每一个子列表就是一个特征值
print("目标值:", li.target) #获取目标值,其值有0、1、2,代表3个类别。数据都是整数(离散型数据)
"""注意:特征值和目标值是一一对应的"""
print("描述:", li.DESCR) #描述
print("特征名:", li.feature_names)
print("标签名:", li.target_names)
""""-------------------------------------------------------------------------------------------------------------"""
#划分数据集
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(li.data, li.target, test_size=0.25)
#参数:特征值、目标值、测试集大小。其返回值即有测试集,又有训练集,即他们的特征值(x)和目标值(y)。数据默认是乱序
print("训练集特征值和目标值:\n", x_train, y_train)
print("测试集特 征值和目标值:\n", x_test, y_test)
""""-------------------------------------------------------------------------------------------------------------"""
#用于分类的大数据集(新闻数据集,20个类)
from sklearn.datasets import fetch_20newsgroups
news = fetch_20newsgroups(subset="all")
print("特征值:\n", news.data)
print("目标值:\n", news.target)
""""-------------------------------------------------------------------------------------------------------------"""
from sklearn.datasets import load_boston
lb = load_boston()
print("特征值:\n", lb.data)
print("目标值:\n", lb.target)
print("描述:\n", lb.DESCR)
网友评论