sklearn数据集
数据集划分
训练集:75%(推荐)、70%、80%。用于训练,构建模型
测试集:25%(推荐)、30%、20%。在模型检验时使用,用于评估模型是否有效
scikit-learn数据集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:标签名,回归数据集没有
from sklearn.datasets import load_iris
li=load_iris()
print('获取特征值:{}'.format(li.data))
print('获取目标值:{}'.format(li.target))
print('描述:{}'.format(li.DESCR))
sklearn分类数据集
数据集进行分割
sklearn.model_selection.train_test_split(*arrays, **options)
x 数据集的特征值
y 数据集的标签值
test_size 测试集的大小,一般为float
random_state 随机数种子,不同的种子会造成不同的随机采样结果。相同的种子采样结果相同。
return 训练集特征值,测试集特征值,训练标签,测试标签(默认随机取,顺序不可变)
from sklearn.model_selection import train_test_split
li=load_iris()
#print('获取特征值:{}'.format(li.data))
#print('获取目标值:{}'.format(li.target))
#print('描述:{}'.format(li.DESCR))
#注意返回值 训练集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)
用于分类的大数据集
sklearn.datasets.fetch_20newsgroups(data_home=None,subset=‘train’)
subset: ‘train’或者’test’,‘all’,可选,选择要加载的数据集.
训练集的“训练”,测试集的“测试”,两者的“全部”
datasets.clear_data_home(data_home=None)
清除目录下的数据
from sklearn.datasets import fetch_20newsgroups
news=fetch_20newsgroups(subset='all')
print(news.data)
print(news.target)
sklearn回归数据集
from sklearn.datasets import load_boston
lb=load_boston()
print('获取特征值:{}'.format(lb.data))
print('获取目标值:{}'.format(lb.target))
print('描述:{}'.format(lb.DESCR))
转换器与估计器
转换器
fit_transform():输入数据直接转换
fit():输入数据,但是不做事情(计算平均值、方差等等)+transform()进行数据的转换
In [1]: from sklearn.preprocessing import StandardScaler
In [2]: s=StandardScaler()
In [3]: s.fit_transform([[1,2,3],[4,5,6]])
Out[3]:
array([[-1., -1., -1.],
[ 1., 1., 1.]])
In [4]: ss=StandardScaler()
In [5]: ss.fit([[1,2,3],[4,5,6]])
Out[5]: StandardScaler()
In [6]: ss.transform([[1,2,3],[4,5,6]]) #以[[1,2,3],[4,5,6]]计算来的标准差和均值来转换的
Out[6]:
array([[-1., -1., -1.],
[ 1., 1., 1.]])
In [7]: ss.fit([[2,3,4],[4,5,7]])
Out[7]: StandardScaler()
In [8]: ss.transform([[1,2,3],[4,5,6]]) #[[2,3,4],[4,5,7]]计算来的标准差和均值来转换的
Out[8]:
array([[-2. , -2. , -1.66666667],
[ 1. , 1. , 0.33333333]])
估计器
在sklearn中,估计器(estimator)是一个重要的角色,分类器和回归器都属于estimator,是一类实现了算法的API。
1、用于分类的估计器:
sklearn.neighbors k-近邻算法
sklearn.naive_bayes 贝叶斯
sklearn.linear_model.LogisticRegression 逻辑回归
2、用于回归的估计器:
sklearn.linear_model.LinearRegression 线性回归
sklearn.linear_model.Ridge 岭回归