1. 使用sklearn构建完整的机器学习项目流程
机器学习项目的步骤有如下几步:
明确项目任务:回归/分类
收集数据集并选择合适的特征。
选择度量模型性能的指标。
选择具体的模型并进行训练以优化模型。
评估模型的性能并调参。
2. 选择具体的模型并训练
2.1 线性回归模型
回归分析:研究的是因变量(目标)和自变量(特征)之间的关系。这种技术通常用于预测分析,时间序列模型以及发现变量之间的因果关系
线性回归模型:假设目标值与特征之间线性相关,即满足一个多元一次方程。通过构建损失函数,来求解损失函数最小时的参数w
2.2 线性回归的推广
2.3 回归树(决策树)
回归树:依据分层和分割的方式将特征空间划分为一系列简单的区域。对某个给定的待预测的自变量,用他所属区域中训练集的平均数或者众数对其进行预测
优点:解释性强、更接近人的决策方式、用图来表示、直接做定性的特征、很好处理缺失值和异常值
缺点:对异常值不敏感、预测准确性一般无法达到其他回归模型的水平
2.4 支持向量机回归(SVR)
3. 实战练习:使用sklearn构建完整的回归项目
本例使用sklearn内置数据集:糖尿病数据集
# 引入相关科学计算包
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
plt.style.use("ggplot")
import seaborn as sns
3.1 选择合适的特征
from sklearn import datasets
# sklearn内置数据集:糖尿病数据集
# 返回一个类似于字典的类
diabetes = datasets.load_diabetes()
X = diabetes.data
y = diabetes.target
features = diabetes.feature_names
diabetes_data = pd.DataFrame(X,columns=features)
diabetes_data['disease_progression'] = y
diabetes_data.head()
3.2 线性回归模型
# 引入线性回归方法
from sklearn import linear_model
# 创建线性回归的类
lin_reg = linear_model.LinearRegression()
# 输入特征X和因变量y进行训练
lin_reg.fit(X,y)
# 输出模型的系数
print("糖尿病数据集的线性回归模型系数:",lin_reg.coef_)
# 输出模型的决定系数R^2
print("糖尿病数据集的线性回归模型得分:",lin_reg.score(X,y))
3.3 决策树模型
from sklearn.tree import DecisionTreeRegressor
reg_tree = DecisionTreeRegressor(criterion = "mse",min_samples_leaf = 5)
reg_tree.fit(X,y)
print("糖尿病数据集的决策树模型得分:",reg_tree.score(X,y))
3.4 SVR模型
from sklearn.svm import SVR
from sklearn.preprocessing import StandardScaler # 标准化数据
from sklearn.pipeline import make_pipeline
# 使用管道,把预处理和模型形成一个流程
reg_svr = make_pipeline(StandardScaler(), SVR(C=1.0, epsilon=0.2))
reg_svr.fit(X, y)
print("糖尿病数据集的SVR模型得分:",reg_svr.score(X,y))
网友评论