机器学习_02 线性回归模型
本文主要讲解了机器学习中线性回归模型的基本概念、模型的创建与训练以及对模型性能的评估方法
目录
一、前言
- 🍨 本文为🔗365天深度学习训练营中的学习记录博客
- 🍖 原作者:K同学啊
二、基本概念
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等对模型进行性能评估;
👏觉得文章对自己有用的宝子可以收藏文章并给小编点个赞!
👏想了解更多统计学、数据分析、数据开发、机器学习算法、深度学习等有关知识的宝子们,可以关注小编,希望以后我们一起成长!
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)