回归模型构建

回归模型构建

模块 函数 算法名称 简称
linear_model LinearRegression 线性回归 LR
svm SVR 支持向量机回归 SVM
neighbors KNeighborsRegressor 最近邻回归 KNN
tree DecisionTreeRegressor 回归决策树 DT
ensemble RandomForestRegressor 随机森林回归 RF
ensemble GradientBoostingRegressor 梯度提升回归树 GBDT

以SVM为例,咱简单过一遍模型构建的大致流程。

from sklearn.datasets import load_diabetes  # 导入糖尿病数据
from sklearn.model_selection import train_test_split  # 数据集划分
from sklearn.preprocessing import StandardScaler  # 标准差标准化
from sklearn.svm import SVR  # 导入SVR库

# 导出所需的数据
diabetes = load_diabetes()
X = diabetes['data']
y = diabetes['target']
# 数据集划分
X_train, X_test, y_train, y_test = train_test_split(X, y, train_size = 0.8, random_state = 123)
# 数据标准化
Standard = StandardScaler().fit(X_train)  # 训练规则
x_train = Standard.transform(X_train)  # 应用规则
x_test = Standard.transform(X_test)  # 应用规则
# 开始构建
svr = SVR().fit(x_train, y_train)  # 训练模型
y_pred = svr.predict(x_test)  # 预测标签

  数据标准化的目的,是消除量纲差异。因为量纲差异会导致涉及距离计算和梯度下降的模型出现异常,例如某些特征重要性非常大,而某些特征则变得不那么重要。

  至此,模型就构建完毕了。当然,很多时候我们还需要对构建的模型进行评价。

回归模型评价

方法名称 最优值 sklearn函数
平均绝对误差 0.0 metrics. mean_absolute_error
均方误差 0.0 metrics. mean_squared_error
中值绝对误差 0.0 metrics. median_absolute_error
可解释方差值 1.0 metrics. explained_variance_score
R方值,确定系数 1.0 metrics. r2_score

所有回归模型评价函数的参数均为两个:

  • 真实值,即在划分时划分的测试集标签

  • 预测值,通过模型预测所得出的结果

一般情况下,单一一个回归模型无法说明回归模型好坏,需要多个回归模型进行比较。

from sklearn import metrics
metrics.mean_absolute_error(y_test, y_pred)

60.62483115202473

metrics.mean_squared_error(y_test,y_pred)

5160.5160.043822698072

metrics.median_absolute_error(y_test,y_pred)

56.12912460415339

metrics.explained_variance_score(y_test,y_pred)

0.20385710303138893

metrics.r2_score(y_test,y_pred)

0.18096718824416846

  由这里我们也可以看出,不同的评价方法也会得出不同的模型优劣。

  所以,要想构建一个好的模型,首先得确定一或多个适合的模型算法,之后进行交叉验证等手段验证,还得运用恰当的评价方法进行客观评价。甚至即便如此,我们也还不能肯定地说:得到的模型,就是一个十全十美的最好的模型。

  下课。

一个佛系的博客更新者,随手写写,看心情吧 (っ•̀ω•́)っ✎⁾⁾
原文地址:https://www.cnblogs.com/WoLykos/p/9565845.html