基于sklearn自带数据集波士顿房价数据集进行多元线性回归算法代码实现,其数据集包括13个特征向量,共计506个样本集。
本文代码实现步骤如下:
1. 获取数据集
2. 数据集切分,老规矩,80%训练,20%测试
3. 数据预处理(本用例尝试过归一化处理,但发现效果不好,不是每一个算法和模型都适用于归一化处理)
4. 建模并训练
5. 使用并评估文章来源:https://www.toymoban.com/news/detail-740486.html
具体代码如下:文章来源地址https://www.toymoban.com/news/detail-740486.html
# -*- coding: UTF-8 -*-
import numpy as np
from sklearn import datasets
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
# 1.获取数据集
boston = datasets.load_boston()
print(boston.keys())
print(boston.feature_names) # 所有特征向量名称
# ['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD', 'TAX', 'PTRATIO', 'B', 'LSTAT']
data = boston.data # (506, 13)
target = boston.target
print(np.shape(data))
print(np.shape(target))
# 2. 数据集切分
X_train, X_test, y_train, y_test = train_test_split(data, target, test_size=0.2, random_state=666)
# 3. 数据预处理
standardscaler = StandardScaler()
standardscaler.fit(X_train)
# X_train = standardscaler.transform(X_train) # 归一化并不适用于此数据集和模型
# X_test = standardscaler.transform(X_test)
X_train = X_train[y_train < 50] # 过滤掉上限极值对模型正确性是比较有效的
X_test = X_test[y_test < 50]
y_train = y_train[y_train < 50]
y_test = y_test[y_test < 50]
# 4.建立线形回归模型
lin_reg = LinearRegression()
lin_reg.fit(X_train, y_train)
A = lin_reg.coef_ # 训练出来的系数
b = lin_reg.intercept_ # 训练出来的截距
print("线性回归模型为:y = {}x1 + {}x2 + {}x3 + {}x4 + {}x5 + {}x6 + "
"{}x7 + {}x8 + {}x9 + {}x10 + {}x11 + {}x12 + {}x13 + {}.".
format(A[0], A[1], A[2], A[3], A[4], A[5], A[6], A[7], A[8], A[9], A[10], A[11], A[12], b))
# 5.使用并评估回归模型
train_score = lin_reg.score(X_train, y_train)
test_score = lin_reg.score(X_test, y_test)
print("训练数据集模型得分{}".format(train_score))
print("测试数据集模型得分{}".format(test_score))
y_pred = lin_reg.predict(X_test)
# print(y_pred)
到了这里,关于多元线性回归的python代码实现(基于sklearn的波士顿房价boston数据集为例)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!