線形回帰 - 最小二乗-diabetes

データセット:https://scikit-learn.org/stable/datasets/

特徴:

年齢年齢

セックスセックス

BMIボディマス指数

BP BP

血清アッセイデータのS1、S2、S3、S4、S4、S6 6種類

タグ:

1年後の疾患の進行値の定量的な指標

 

まず、ライブラリをロード

import numpy as np
import pandas as pd
from sklearn import datasets
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error, r2_score
import matplotlib as mpl
import matplotlib.pyplot as plt
# 设置字体为黑体,以支持中文显示。
mpl.rcParams["font.family"] = "SimHei"
# 设置在中文字体时,能够正常的显示负号(-)。
mpl.rcParams["axes.unicode_minus"] = False

第二に、データの前処理

# 加载数据集
data = pd.read_csv(r"diabetes.csv",header=0)
#data.sample(30)
#data.info()
# 查看是否含有异常值
#data.describe()
# 检查是否包含重复值
#data.duplicated().any()
# 如果有重复值,可以这样去除重复值
# data.drop_duplicates(inplace=True)

第三に、メソッドを呼び出します

# 将加载的数据集分为特征X与标签y。
X, y = data.iloc[:, :-1], data.iloc[:, -1]
#通过train_test_splil将数据分为训练集、测试集,测试集占0.25的比例
train_X, test_X, train_y, test_y = train_test_split(X, y, test_size=0.25, random_state=0)
#display(len(train_y))
#display(len(test_y))

#实例化线性回归模型
lr=LinearRegression()
#训练模型
lr.fit(train_X,train_y)
#传入测试集进行测试
result=lr.predict(test_X)
#对模型进行评估

display(result)
display(test_y.values)
# 均方误差
print("Mean squared error: %.2f" % mean_squared_error(test_y, result))
# 方差分数: 1代表完美预测
print('Variance score: %.2f' % r2_score(test_y, result))

第四に、結果の可視化

plt.figure(figsize=(15, 10))
# 绘制预测值
plt.plot(result, "ro-", label="预测值")
# 绘制真实值
plt.plot(test_y.values, "go--", label="真实值")
plt.title("线性回归预测-最小二乘")
plt.xlabel("样本序号")
plt.ylabel("一年后疾病值")
plt.legend(loc="best")
plt.show()

 

おすすめ

転載: blog.csdn.net/weixin_42295205/article/details/91618650