《机器学习python实战》(魏贞原)学习笔记
# 导入类库
import numpy as np
from numpy import arange
from matplotlib import pyplot
from pandas import read_csv
from pandas import set_option
from pandas.plotting import scatter_matrix
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.model_selection import KFold
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import GridSearchCV
from sklearn.linear_model import LinearRegression
from sklearn.linear_model import Lasso
from sklearn.linear_model import ElasticNet
from sklearn.tree import DecisionTreeRegressor
from sklearn.neighbors import KNeighborsRegressor
from sklearn.svm import SVR
from sklearn.pipeline import Pipeline
from sklearn.ensemble import RandomForestRegressor
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.ensemble import ExtraTreesRegressor
from sklearn.ensemble import AdaBoostRegressor
from sklearn.metrics import mean_squared_error
# 导入数据
filename = 'housing.csv'
names = ['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS',
'RAD', 'TAX', 'PRTATIO', 'B', 'LSTAT', 'MEDV']
dataset = read_csv(filename, names=names, delim_whitespace=True)
# ----------理解数据-------------
# 数据维度
# 首先看一下数据维度,例如数据集中有多少条记录、有多少个数据特征。
print(dataset.shape)
# 特征熟悉的字段类型
print(dataset.dtypes)
# 查看最开始的30条记录
# 指定输出的宽度为120个字符,以确保将所有特征属性值显示在一行内
set_option('display.line_width', 120)
print(dataset.head(30))
# 描述性统计信息
# 加深对数据分布、数据结构等的理解。
set_option('precision', 1)
print(dataset.describe())
# 关联关系
# 看一下数据特征之间的两两关联关系,查看数据的皮尔逊相关系数。
set_option('precision', 2)
print(dataset.corr(method='pearson'))
# 通过结果可以看到,特征属性之间的强关联关系(>0.7或<-0.7)
# ----------数据可视化-------------
# -----------单一特征图表
# 直方图
# 通过查看各个数据特征的数据的分布情况。
dataset.hist(sharex=False, sharey=False, xlabelsize=1, ylabelsize=1)
pyplot.show()
# 密度图
# 通过密度图可以展示这些数据的特征属性,密度图比直方图更加平滑地展示了这些数据特征
dataset.plot(kind='density', subplots=True, layout=(4,4), sharex=False, fontsize=1)
pyplot.show()
# 箱线图
# 通过箱线图可以查看每一个数据特征的状况,也可以很方便地看出数据分布的偏态程度。
dataset.plot(kind='box', subplots=True, layout=(4,4), sharex=False, sharey=False, fontsize=8)
pyplot.show()
# -----------------多重数据图表
# 散点矩阵图
# 查看不同数据特征之间的相互影响关系
# 通过散点矩阵图可以看到,虽然有些数据特征之间的关联关系很强,但是这些数据分布结构也很好。
# 即使不是线性分布结构,也是可以很方便进行预测的分布结构&#x