数据集
-
scikit learn python语言机器学习的工具有着丰富的API 数据集有着训练和测试两个不同的 具体多上自己定
-
scikit learn接口有 分类 聚类 回归 特征工程 模型选择 调优
-
加载数据集 sklearn.datasets
- datasets.load_*() 加载小规模的数据数据包
- datasets.fetch_*(data_home = 数据集默认下载目录)默认 ~/scikit_learn_data/
- sklearn.datasets.fetch_20newsgroups(data_home=None,subset=‘train’)训练集【 train(训练) test(测试) all(全部)】
- 数据集返回值得类型
- data:特征数据数组,是 [n_samples * n_features] 的二维 numpy.ndarray 数组
- target:标签数组,是 n_samples 的一维 numpy.ndarray 数组
- DESCR 数据描述
- feature_names 特征名字
- target_names:标签名
- 鸢尾花数据集是原则20世纪30年代的经典数据集。它是用统计进行分类的鼻祖。该数据集包括3个鸢尾花类别,每个类别有50个样本。其中一个类别是与另外两类线性可分的,而另外两类不能线性可分。
- 鸢尾花就是前面有着四个数据然后会判断第五字段的属性是哪一个 里面有共有三个属性 鸢尾花数据一共150组 就是150行
-
数据集 进行划分
-
from sklearn.model_selection import train_test_split
- x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, random_state=22)
- x 数据集的特征值
- y 数据集的标签值
- test_size 测试集的大小,一般为float
random_state 随机数种子,不同的种子会造成不同的随机采样结果。相同的种子采样结果相同。
-
这里面主要是用了鸢尾花就是因为他是现成的数据 使用起来比较方便 然后在sklearn里面发现这个API的种子数量不同结果就不同 然后还有自动他给分开了 使用数据是多少 测试的是多少 这里就是 112/150 38/150
-
fit(x,y)传两个参数的是有监督学习的算法,fit(x)传一个参数的是无监督学习的算法,比如降维、特征提取、标准化。
-
fit和transform没有任何关系,之所以出来这么个函数名,仅仅是为了写代码方便,所以会发现transform()和fit_transform()的运行结果是一样的。
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
iris = load_iris()
# print("鸢尾花数据 ",iris)
# print("----------------")
# print(iris["data"])
# print("----------------")
# print(iris.target)
# print("----------------")
# print(iris.feature_names)
# print("----------------")
# print(iris.target_names)
# print("----------------")
# print(iris.DESCR)
# xtrain,xtest,ytrain,ytest = train_test_split(iris.data,iris.target, random_state=30)
# print(xtrain)
# print("----------------------")
# print(xtrain.shape)
# print("----------------------")
# print(ytrain.shape)
# print("----------------------")
# print(xtest.shape)
# print("----------------------")
# print(ytest.shape)
# 2、对鸢尾花数据集进行分割
# 训练集的特征值x_train 测试集的特征值x_test 训练集的目标值y_train 测试集的目标值y_test
x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, random_state=22)
print("x_train:\n", x_train.shape)
# 随机数种子
x_train1, x_test1, y_train1, y_test1 = train_test_split(iris.data, iris.target, random_state=6)
x_train2, x_test2, y_train2, y_test2 = train_test_split(iris.data, iris.target, random_state=6)
print("如果随机数种子不一致:\n", x_train == x_train1)
print("-------------------------")
print("如果随机数种子一致:\n", x_train1 == x_train2)