-
Notifications
You must be signed in to change notification settings - Fork 0
/
Experiment5-3.py
30 lines (25 loc) · 1.26 KB
/
Experiment5-3.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import pandas as pd
winequality = pd.read_csv('Data\\winequality.csv',sep=';')
target = winequality['quality'] #标签
data = winequality.drop('quality',axis=1) #数据
# 数据和标签分为训练集和测试集
from sklearn.model_selection import train_test_split
data_train,data_test,target_train,target_test = train_test_split(data,target)
#构建线性回归模型
from sklearn.linear_model import LinearRegression
clf = LinearRegression().fit(data_train,target_train)
quality_pre = clf.predict(data_test)
#评价
from sklearn.metrics import mean_squared_error,median_absolute_error,explained_variance_score
print("线性回归模型的均方误差为:",mean_squared_error(target_test,quality_pre))
print("线性回归模型的中值误差为:",median_absolute_error(target_test,quality_pre))
print("线性回归模型的可解释方差值为:",explained_variance_score(target_test,quality_pre))
#展示对比
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
fig = plt.figure(figsize=(15,6))
plt.plot(range(target_test.shape[0]),target_test,linewidth=1.5,linestyle='-')
plt.plot(range(target_test.shape[0]),quality_pre,linewidth=1.5,linestyle='-.')
plt.legend(["真实值","预测值"])
plt.show()