目录

一、前言

二、基本概念

1、线性

2、回归

3、线性回归

三、简单线性回归模型

1、简单线性回归

2、简单线性回归模型详细步骤

(1)导入库

(2)加载数据

(3)将数据拆分为训练集和测试集

(4)创建并训练模型

(5)预测模型

(6)评估模型

(7)可视化

四、多元线性回归模型

1、多元线性回归

2、多元线性回归模型详细步骤

(1)导入库

(2)加载数据

(3)将数据拆分为训练集和测试集

(4)创建并训练模型

(5)预测模型

(6)评估模型

(7)测试集结果可视化

五、总结 

1、线性回归的核心原理

2、模型评估方法


一、前言

二、基本概念

1、线性

在机器学习中,线性是指自变量(X)与因变量(Y)之间存在一定的关系,而这种关系可以用线性方程来表示,即通过一个或多个变量来表示另外一个变量。

2、回归

回归是一种统计分析方法,旨在研究一个或多个自变量(X)与一个因变量(Y)之间的定量关系。通过回归分析,可以建立一个数学模型,用于预测因变量在给定自变量值下的表现。

3、线性回归

通过两个或多个变量之间的线性关系来预测结果。

三、简单线性回归模型

1、简单线性回归

(1)简单线性回归:影响Y的因素唯一,只有一个;

(2)一元线性回归:Y = aX +b;

2、简单线性回归模型详细步骤

以下案例主要是探讨学生学习时长与成绩之间的关系

(1)导入库

#导入库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import r2_score,mean_squared_error
from sklearn.preprocessing import StandardScaler

(2)加载数据

#读取数据
student_scores = pd.read_csv(r"D:\Desktop\CC是小陈\Machine Learning\studentscores.csv")
print(student_scores)

(3)将数据拆分为训练集和测试集

#将数据拆分为训练集和测试集
X = student_scores.iloc[:,:1].values  # 取出第0列的所有值
Y = student_scores.iloc[:,1].values  # 取出第1列的所有值
x_train,x_test,y_train,y_test = train_test_split(X,Y,test_size=1/4,random_state=0)

(4)创建并训练模型

#创建并训练简单线性回归模型
lg = LinearRegression()
lg = lg.fit(x_train,y_train)

(5)预测模型


#预测测试集数据
y_pred = lg.predict(x_test)

(6)评估模型

#对模型进行性能评估
mse = mean_squared_error(y_test,y_pred)
r2 = r2_score(y_test,y_pred)
print(mse)
print(r2)

(7)可视化

  • 对训练数据集进行可视化
​
plt.scatter(x_train,y_train,color='red')
plt.plot(x_train,lg.predict(x_train),color='blue')
plt.title('Student Scores Training Set')
plt.xlabel('Hours Studied')
plt.ylabel('Scores Obtained')
plt.show()

​

 可视化结果如下:

 

  • 对测试数据集进行可视化
plt.scatter(x_test,y_test,color = 'red')
plt.plot(x_test,lg.predict(x_test),color= 'blue')
plt.title('Student Scores Test Set')
plt.xlabel('Hours Studied')
plt.ylabel('Scores Obtained')
plt.show()

可视化结果如下:

四、多元线性回归模型

1、多元线性回归

(1)多元线性回归:影响Y的因素不唯一,有多个;

(2)多元线性回归公式:Y = aX1+bX2+.....+nXn+b;

2、多元线性回归模型详细步骤

(1)导入库

#导入库
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error,r2_score

(2)加载数据

url = "https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"
names = ['花萼-length', '花萼-width', '花瓣-length', '花瓣-width', 'class']
dataset = pd.read_csv(url, names=names)
print(dataset)

(3)将数据拆分为训练集和测试集

#将数据拆分为训练集和测试集
X = dataset.iloc[ : ,[1,2]].values
Y = dataset.iloc[ : ,  3 ].values
x_train,x_test,y_train,y_test = train_test_split(X,Y,test_size=0.2,random_state=0)

(4)创建并训练模型

#创建模型并对模型进行训练
lg = LinearRegression()
lg = lg.fit(x_train,y_train)

(5)预测模型

#对模型进行预测
y_pred = lg.predict(x_test)

(6)评估模型

#对模型进行评估
mse = mean_squared_error(y_test,y_pred)
r2 = r2_score(y_test,y_pred)
print("MSE:",mse)
print("R2:",r2)

(7)测试集结果可视化

#对测试集数据进行可视化
plt.scatter(y_test,y_pred, color='red')
plt.xlabel("Prediction")
plt.ylabel("True");
plt.show()

可视化执行结果如下:

五、总结 

1、线性回归的核心原理

线性回归核心是为了找到一组权重(系数),使得这些权重与特征的线性组合尽可能接近目标值。在训练过程中,通过最小化预测值与实际值直接的差异(误差平方和)来确定这些权重。

2、模型评估方法

(1)对于回归模型,可以使用均方误差和决定系数对模型进行性能评估;

(2)对于分类模型,可以使用准确率、精确率、召回率、F1_score等对模型进行性能评估;


👏觉得文章对自己有用的宝子可以收藏文章并给小编点个赞!

👏想了解更多统计学、数据分析、数据开发、机器学习算法、深度学习等有关知识的宝子们,可以关注小编,希望以后我们一起成长!

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐