yjs机器学习数据操作01——数据的获取、可视化
数据的获取
1.库与模块:
import sklearnfrom sklearn import datasets
2.数据集获取的API及解释
对于sklearn的数据获取,主要分为两大部分,分别是“小数据集的获取——load_xxx”和“大数据集的获取fetch_xxx”
a.datasets.load_xxx():
load_xxx:这些数据集通常加载到内存中,适合快速实验和模型验证
常见的有
load_iris()
:加载经典的鸢尾花(Iris)数据集。load_digits()
:加载手写数字数据集。load_wine()
:加载葡萄酒分类数据集。load_breast_cancer()
:加载乳腺癌分类数据集。load_diabetes()
:加载糖尿病回归数据集。load_linnerud()
:加载 Linnerud 数据集(多输出回归)。
b.datasets.fetch_xxx()
fetch_xxx:
从网络下载数据集,适用于较大规模的真实世界数据集常见的有:
fetch_20newsgroups()
:加载20类新闻组数据集,用于文本分类任务。fetch_olivetti_faces()
:加载 Olivetti 人脸数据集,用于图像处理任务。fetch_lfw_people()
:加载 LFW(Labelled Faces in the Wild)人脸识别数据集。fetch_lfw_pairs()
:加载 LFW 人脸对数据集,用于人脸匹配。fetch_covtype()
:加载 Covertype 数据集,用于分类问题。fetch_rcv1()
:加载 RCV1(Reuters Corpus Volume I)数据集
3.数据集的属性
import sklearn
from sklearn import datasets
data=datasets.load_iris()"""1.数据集的具体数据/本质上也是特征值:"""
data["data"] """2.数据集的特征名:"""
data.feature_names"""3.数据集的目标名称/标签名称"""
data.target_names"""4.数据集的目标值/标签值"""
data.target"""5.数据集的总体描述"""
data.DESCR
数据的可视化
1.库与模块:
import seaborn as sns
#seaborn是对matplotlib的更高级api的封装
2.可视化的API及解释——lmplot
sns.lmplot(x= , y= , data= ,hue= , fit_reg=True/False....)
参数说明:
x/y=... : 是指定画图时的x坐标是啥,y是啥,这里不是将其命名,而是指出以什么参数为x、y轴 ;一般是某一个“属性”,即特征
························································································································
data= :这里指定数据,并且数据一定要是DataFrame结构
这里就涉及到将load_或者fetch获得的数据结构进行变化:
Data_load=pd.DataFrame(data["data"],columns=data.feature_names)
··························································································································
hue= :这里是指按照什么进行分类,
data【“data”】获取的数据一般是这样的:
一般我们把它再加一列,就是将每个样本的目标值,即标签加入进去
Data_load["target"]=data.target
所以这里的hue一般这样写:
hue=Data_load.target或者["target"]
··························································································································
fit_reg=T/F:是否进行线性拟合
整体代码:
# 将数据用seaborn库进行可视化 data_1=pd.DataFrame(data=dataSet1["data"],columns=dataSet1.feature_names) data_1["target"]=dataSet1.target print(data_1) print(data_1.columns[0]) sns.lmplot(x=data_1.columns[0], y=data_1.columns[1], data=data_1, hue="target") plt.xlabel("cols1") plt.ylabel("cols2") plt.title("鸢尾花") plt.show()
结果:
注意图的相关显示的属性,如x坐标名称,y坐标名称,图的题目等是同matplotlib那个一样,都是 “plt.xxx”
最后的展示也是“plt.show()”
整体代码:
import matplotlib.pyplot as plt import pandas as pd import sklearn import seaborn as sns from sklearn import datasets import numpy as np plt.rcParams['font.family'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = FalsedataSet1 = datasets.load_iris() print("鸢尾花数据集如下:") print(dataSet1) print("鸢尾花的属性:") print("特征数据数组:") print(dataSet1["data"]) print("标签值:") print(dataSet1.target) print("标签名:") print(dataSet1.target_names) print("特征名:") print(dataSet1.feature_names) print("数据描述:") print(dataSet1.DESCR)# 将数据用seaborn库进行可视化 data_1=pd.DataFrame(data=dataSet1["data"],columns=dataSet1.feature_names) data_1["target"]=dataSet1.target print(data_1) print(data_1.columns[0]) sns.lmplot(x=data_1.columns[0], y=data_1.columns[1], data=data_1, hue="target") plt.xlabel("cols1") plt.ylabel("cols2") plt.title("鸢尾花") plt.show()
结果:(截取部分片段)