上学期学习了专业课数据挖掘,打算利用寒假时间在CSDN上复习整理数据挖掘的相关笔记进行复习巩固相关理论与代码,与下学期的机器学习相结合。在这里想和大家一起学习一起进步。
首先对sklearn中的内置数据集进行了解,以鸢尾花数据集(iris)和波士顿房价数据集(boston)以及手写数字数据集(digits)为例,学习查看sklearn中自带数据集的相关概论以及数据预处理。接下来将对这几个数据集做相关处理。
scikit-learn分别为6大类:
• 分类Classification
• 回归Regression
• 聚类Clustering
• 降维Dimensionality reduction
• 模型选择Model selection
• 数据预处理Preprocessing
• iris鸢尾花数据集,分类数据集,查看内置数据集
• 因变量:Iris-Setosa刚毛鸢尾花;Iris-Versicolour变色鸢尾花;Iris-Virginica佛吉尼亚鸢尾花
• 自变量:萼片长度(cm);萼片宽度(cm);花瓣长度(cm);花瓣宽度(cm)
import sklearn#导入sklearn包
from sklearn.datasets import load_iris#导入自带iris数据集集,iris数据集分类问题
iris = load_iris()#导入iris数据集,加载数据
#iris
iris.keys()#字典形式返回,特征、目标变量、标签、目标变量名、数据集介绍、特征变量名、文件名
字典形式返回,特征、目标变量、标签、目标变量名、数据集介绍、特征变量名、文件名
iris.filename#查看储存地址
print(iris.DESCR)#数据集内容
iris.target_names#查看目标变量名称
iris.target.shape#查看目标变量数目
iris.target#目标变量用0、1、2分别表示'setosa', 'versicolor', 'virginica'
目标变量用0、1、2分别表示’setosa’, ‘versicolor’, ‘virginica’
iris.feature_names#查看特征名称
萼片长度(cm);萼片宽度(cm);花瓣长度(cm);花瓣宽度(cm)
iris.data#等价于iris['data']
iris['data'].shape#行、列
该数据集共有150组数据,特征分别为萼片长度(cm);萼片宽度(cm);花瓣长度(cm);花瓣宽度(cm)
生成表格,更直观地观察数据
#转换数据框
import pandas as pd
iris_df = pd.DataFrame(iris.data,columns = iris.feature_names)#普通数据转化DataFrame
#columns 用什么命名
iris_df
#加一列
iris_df['class'] = iris.target
iris_df
波士顿房价数据集包含506组数据,每条数据包含房屋以及房屋周围的详细信息。其中包括城镇犯罪率、一-氧化氮浓度、住宅平均房间数、到中心区域的加权距离以及自住房平均房价等。因此,波士顿房价数据集能够应用到回归问题上。
• 方法一
from sklearn import datasets
boston = datasets.load_boston()
boston#查看数据信息
• 方法二
from sklearn.datasets import load_boston
boston=load_boston()
boston.keys()#字典形式返回,特征、目标变量、特征变量名、数据集介绍、文件名
boston.filename#查看储存地址
print(boston.DESCR)#数据集内容
boston.feature_names#查看特征名称
每条数据包含房屋以及房屋周围的详细信息。其中包括城镇犯罪率、一-氧化氮浓度、住宅平均房间数、到中心区域的加权距离以及自住房平均房价等。
boston.data#等价于boston['data']
boston['data'].shape#行、列
更直观查看数据
boston_df = pd.DataFrame(boston.data,columns = boston.feature_names)
#boston_df
boston_df.head(20)#查看前20行,若无则查看前5行
• 手写数字数据集包括1797个0-9的手写数字数据,每个数字由8*8大小的矩阵构成,矩阵中值的范围是0-16 ,代表颜色的深度。
• 手写数据集,图片处理;存储图片RGB红黄蓝,色数大小,矩阵表示;像素越高矩阵每一格越小,图像越逼真。
from sklearn.datasets import load_digits
digit=load_digits()
digit
digit.keys()
digit.images.shape
digit.data.shape#有1797张图片,64维,将原图片拉长
digit.images[0]#数字大颜色深或浅
import matplotlib.pyplot as plt
%matplotlib inline
#矩阵可视化,显示图片
plt.matshow(digit.images[0])#可自由选择相关数字
实例化–>fit 拟合–>transform转化 or Predict预测
from sklearn import preprocessing#预处理
#去除量缸的影响
std = preprocessing.StandardScaler()#实例化
std
from sklearn import linear_model
reg = linear_model.LinearRegression()
reg
from sklearn import decomposition
dec = decomposition.PCA()
dec
from sklearn import svm
svv = svm.SVC()
svv
std.get_param()#查看参数
std.set_param(copy=False)#设置参数
std.fit(boston.data)
std.mean_#均值,期望
std.var_#方差
std.transform(boston.data)#两条命令合二为一
std.fit_transform(boston.data)
可以直接使用通过使用Python的pickle模块将训练好的模型保存为外部文件,但最好使用sklearn中的joblib模块进行操作。