重庆建网站优化,织梦网站图标更换,安通建设有限公司网站,上海建筑设计院有限公司是国企吗#x1f368; 本文为#x1f517;365天深度学习训练营 中的学习记录博客#x1f356; 原作者#xff1a;K同学啊 目标#xff1a;
学习简单线性回归模型和多元线性回归模型通过代码实现#xff1a;通过鸢尾花花瓣长度预测花瓣宽度 具体实现#xff1a; #xff08;一 本文为365天深度学习训练营 中的学习记录博客 原作者K同学啊 目标
学习简单线性回归模型和多元线性回归模型通过代码实现通过鸢尾花花瓣长度预测花瓣宽度 具体实现 一环境 语言环境Python 3.10 编 译 器: PyCharm 框 架scikit-learn 二具体步骤 造个数据集内容格式如下 导入库
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt简单线性回归
# 加载数据
dataset pd.read_csv(./studentscores.csv)
print(dataset)# 取第一列Hours的值
X dataset.iloc[:, :1].values
print(X)# 取第二列Scores的值
Y dataset.iloc[:, 1].values
print(Y)很好奇看看XY的形状
print(X.shape)
print(Y.shape)看来两者是一样的形状和大小 。继续
# 切分一下数据集75%用来训练25%用来测试
from sklearn.model_selection import train_test_split
X_train, X_test, Y_train, Y_test train_test_split(X, Y, test_size1/4, random_state0)检验一下切分的成果
print(X_train, X_train.shape)print(Y_train, Y_train.shape)print(X_test, X_test.shape)
print(Y_test, Y_test.shape)做简单线性回归
# 简单线性回归
from sklearn.linear_model import LinearRegression regressor LinearRegression()
regressor regressor.fit(X_train, Y_train)# 预测一下结果
Y_pred regressor.predict(X_test) print(Y_pred, Y_pred.shape)这个预测结果和上面的Y_test比较一下可以看到两者之间的差距以及相似性。我们进行可视化直观看看
# 训练集可视化
plt.scatter(X_train, Y_train, colorred)
plt.plot(X_train, regressor.predict(X_train), colorblue)
plt.show()**
# 测试集预测结果可视化
plt.scatter(X_test, Y_test, colorred)
plt.plot(X_test, regressor.predict(X_test), colorblue)
plt.show()红点是实际分布蓝色线是预测趋势线。两者是趋于一致的预测的偏离并不大。 注plt.scatter()绘制散点图plt.plot()绘制折线图。
下面看看多元线性回归通过鸢尾花花瓣长度预测花瓣宽度
导入数据集
url https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data
names [花萼-length, 花萼-width, 花瓣-length, 花瓣-width, class]
dataset pd.read_csv(url, namesnames)
print(dataset)2. 分析一下数据
plt.plot(dataset[花萼-length], dataset[花瓣-width], x, labelmarkerx)
plt.plot(dataset[花萼-width], dataset[花瓣-width], o, labelmarkero)
plt.plot(dataset[花瓣-length], dataset[花瓣-width], v, labelmarkerv)
plt.legend(numpoints1)
plt.show()3. 取数据
# 取[花萼-width : 花瓣-length]
X dataset.iloc[:, [1, 2]].values
print(X, X.shape)Y dataset.iloc[:, 3].values # 取花瓣-width值
print(Y, Y.shape)3. 将dataset切分成训练数据集和测试数据集
from sklearn.model_selection import train_test_split
X_train, X_test, Y_train, Y_test train_test_split(X, Y, test_size0.2, random_state0)训练多元线性回归模型
from sklearn.linear_model import LinearRegression
regressor LinearRegression()
regressor.fit(X_train, Y_train)在测试集上预测结果
y_pred regressor.predict(X_test)
print(y_pred)6. 把测试集预测结果可视化
plt.scatter(Y_test, y_pred, colorred)
plt.plot(Y_test, Y_test, colorblue) # 假设预测100%正确,那么走势是蓝线
plt.plot(Y_test)
plt.xlabel(True)
plt.ylabel(Prediction)
plt.show()