机器学习日记Day2

机器学习日记Day2,第1张

了解鸢尾花

1、鸢尾花数据集包含在scikit-learn的datasets模块中。我们可以调用load iris函数来加载数据

from sklearn.datasets import load_iris
iris_dataset = load_iris()
#初步了解一个数据集,以鸢尾花数据集为例

2、load iris返回的iris对象是一个Bunch对象,与字典非常相似,里面包含键和值

print("key of iris_dataset:\n{}".format(iris_dataset.keys()))

3、DESCR键对应的值是数据集的简要说明

​
print(iris_dataset['DESCR'][:130]+"\n...")#DESCR键对应的值是数据集的简要说明

​

 

4、target names键对应的值是一个字符串数组,里面包含我们要预测的花的品种

print("target names:{}".format(iris_dataset['target_names']))#target names键对应的值是一个字符串数组,里面包含我们要预测的花的品种

 

5、feature names键对应的值是一个字符串列表,对每一个特征值进行了说明

print("feature names:\n{}".format(iris_dataset['feature_names']))
#feature names键对应的值是一个字符串列表,对每一个特征值进行了说明

 

6、数据包含在target和data字段中,data里是花萼长度,花萼宽度,花瓣长度,花瓣宽度的测量数据,格式为numpy数组

这个可以学习numpy数组有关内容

https://blog.csdn.net/qq_40692109/article/details/104574305?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165191840316781432989903%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165191840316781432989903&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-4-104574305-null-null.142^v9^control,157^v4^control&utm_term=numpy%E6%95%B0%E7%BB%84&spm=1018.2226.3001.4187https://blog.csdn.net/qq_40692109/article/details/104574305?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165191840316781432989903%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165191840316781432989903&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-4-104574305-null-null.142^v9^control,157^v4^control&utm_term=numpy%E6%95%B0%E7%BB%84&spm=1018.2226.3001.4187

print("type of data:\n{}".format(type(iris_dataset['data'])))
#数据包含在target和data字段中,
#data里是花萼长度,花萼宽度,花瓣长度,花瓣宽度的测量数据,格式为numpy数组

 

 7、data数组的每一行对应一朵花,列代表每朵花的四个测量数据

shape 是代表这个数组或矩阵的形状,这里是150朵花的四列数据

print("shape of data:\n{}".format(iris_dataset['data'].shape))#data数组的每一行对应一朵花,列代表每朵花的四个测量数据

 

8、打印前五个样本的特征数值

print("firat five rows of data:\n{}".format(iris_dataset['data'][:5]))#打印前五个样本的特征数值

 

9、arget数组包含的是测量过的每朵花的品种,也是一个numpy数组

print("type of target:{}".format(type(iris_dataset['target'])))#target数组包含的是测量过的每朵花的品种,也是一个numpy数组

 

10、target是一维数组,每朵花对应其中一个数据

print("shape of target:{}".format(iris_dataset['target'].shape))#target是一维数组,每朵花对应其中一个数据

 

11、数字代表含义由iris['target_names']数组给出: 0代表setosa,1代表versicolor, 2代表virginica

三种种类

print("target:\n{}".format(iris_dataset['target']))
"""数字代表含义由iris['target_names']数组给出: 0代表setosa,1代表versicolor, 2代表virginica"""

 

12、生成随机训练集与测试集

生成随机训练集和测试集的目的是为了能够利用已知的数据来测试算法的性能。否则我们无法评估算法的能力。

为什么要伪随机打乱,因为如果顺序生成训练集和测试集,那么类型就是固定的,不能达到我们的目的。

输入为X

输出为y

训练集与测试集为3:1作为经验被惯用,但是其他比例也可以。

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(
    iris_dataset['data'], iris_dataset['target'], random_state=0)
#X代表输入是一个二维数组,数据
#y代表输出是一个一维数组,标签
#train_test_split函数利用伪随机数生成器将数据集打乱
#利用random state参数指定随机数生成器的种子这样函数输出就可以固定不变,代码输出会始终相同。
#X_train,X_test,y_train,y_test都是numpy数组
#X_train包含75%的行数据,X_test包含25%的行数据
print("X train shape:{}".format(X_train.shape))
print("y train shape:{}".format(y_train.shape))

 

print("X test shape:{}".format(X_test.shape))
print("y test shape:{}".format(y_test.shape))

 

12、在建立机器学习模型之前,最重要的是要观察模型,一般通过二维模型来观察

这里使用散点图矩阵来观察特征两两之间的关系

pandas库scatter_matrix绘图可视化参数详解
使用散点图矩阵图,可以两两发现特征之间的联系
scatter_matrix(frame, alpha=0.5, c,figsize=None, ax=None, diagonal='hist', marker='.', density_kwds=None,hist_kwds=None, range_padding=0.05, **kwds)
1、frame,pandas dataframe对象
2、alpha, 图像透明度,一般取(0,1]
3、figsize,以英寸为单位的图像大小,一般以元组 (width, height) 形式设置
4、ax,可选一般为none
5、diagonal,必须且只能在{‘hist’, ‘kde’}中选择1个,’hist’表示直方图(Histogram plot),’kde’表示核密度估计(Kernel Density Estimation);该参数是scatter_matrix函数的关键参数
6、marker。Matplotlib可用的标记类型,如’.’,’,’,’o’等
7、density_kwds。(other plotting keyword arguments,可选),与kde相关的字典参数
8、hist_kwds。与hist相关的字典参数
9、range_padding。(float, 可选),图像在x轴、y轴原点附近的留白(padding),该值越大,留白距离越大,图像远离坐标原点
10kwds。与scatter_matrix函数本身相关的字典参数
11、c颜色
#利用X train中的数据创建 DataFram
#利用iris dataset.feature_names中的字符串对数据列进行标记
#将NumPy数组转换成pandas DataFrame
iris_dataframe = pd.DataFrame(X_train, columns=iris_dataset.feature_names)
#利用datafram创建散点图矩阵,按y_train着色
pd.plotting.scatter_matrix(iris_dataframe, c=y_train, figsize=(15, 15),
                           marker='o', hist_kwds={'bins': 20}, s=60,
                           alpha=.8, cmap=mglearn.cm3)
#pandas有一个绘制散点图矩阵的函数,叫作scatter matrix。矩阵的对角线是每个特征的直方图

 

 

 

 

 

 

 

 

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/873597.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)

保存