线性回归实战项目(LR)-机械学习

本文介绍了线性回归的基本概念,包括自变量、因变量、线性模型和损失函数。通过实验流程展示了如何使用线性回归处理数据,包括数据预处理、模型训练、预测和评估。实验以鸢尾花数据集为例,利用Scikit-Learn库实现了模型,并用均方误差和决定系数评估了模型性能。
摘要由CSDN通过智能技术生成

实验目的

(1)了解线性回归算法的相关概念及含义; (2)掌握线性回归算法求解问题的流程; (3)能够编写出线性回归算法求解某一问题的代码; (4)能够分析实验结果,对算法进行评估。

实验内容

该实验内容包括以下三部分:

(1)需要对线性回归的相关概念进行阐述;

(2)可任选一个数据集(Sklearn自带数据集、自动生成数据集、爬虫得来的数据集、各大竞赛平台下载的数据集、来自实际生活的数据集等均可),并阐述自己所选定的数据集。 需要注意的是,该实验需要选用是回归问题的数据集。

(3)设计实验方案,进行仿真和预测。

实验过程

(1)线性回归算法的相关概念及含义

线性回归是一种基本的统计学习方法,用于建立自变量与因变量之间的线性关系模型,通过对已知数据进行拟合,预测未知数据的取值。涉及到以下一些基本概念:

    自变量:也就是特征或属性,是影响因变量的因素。在线性回归中可以有多个自变量。

    因变量:目标变量,是需要预测的变量,它的值是由自变量决定的,需要根据自变量的取值得到它的预测结果。

    线性模型:线性回归模型就是一个线性函数,它描述了自变量和因变量之间的线性关系,通常表示为 y = w0 + w1x1 + w2x2 + ... + wn*xn,其中y表示因变量的值,w0, w1, w2 ... wn 表示模型的参数,x1, x2 ... xn 表示自变量的值。

    损失函数:用于评估模型预测结果与真实结果之间的误差,线性回归中常用的损失函数是平方损失函数(Square loss function),也称为均方误差(Mean Square Error, MSE)。

    最小二乘法:通过最小化预测结果与真实结果之间的差距,得到最优的模型参数。

(2)线性回归算法求解问题的流程

线性回归算法求解问题的一般流程如下:

    1.加载数据集并进行预处理。对于每个标签属性,需要根据实际业务需求进行量化或二值化等处理。

    2.将数据集划分为训练集和测试集。通常将70%~80%的数据用于训练,20%~30%的数据用于测试。

    3.构建线性回归模型,并使用训练数据集进行模型训练。

    4. 在测试数据集上进行预测操作。

    5.计算预测结果与真实结果之间的误差,并评估模型性能。

   6. 根据实际需求调整模型参数或选择其他算法进行模型建立。

(3)编写线性回归算法求解鸢尾花问题的代码

(4)实验结果的评估

通过代码结果可以得到模型在测试集上的预测结果和均方误差。鸢尾花数据集的目标是根据鸢尾花的四个特征(萼片长度、萼片宽度、花瓣长度和花瓣宽度)预测该鸢尾花的类别,而在这里我们仅选择了其中两列进行分析,并不是完整的鸢尾花分类问题的实现。因此,我们需要根据实际业务需求来对模型进行调优和改进。在评估模型结果时,我们需要结合实际需求,对模型的精度、召回率、F1值等指标进行综合评价,以便于更好地评估模型性能。

实验Python代码

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
import csv
boston=load_iris()
# import pandas as pd
# boston = pd.read_csv(r'D:\Anaconda\Lib\site-packages\sklearn\datasets\data\boston_house_prices.csv',encoding='utf-8', sep=',',engine='python')
X=boston['data']
y=boston['target']
X_train,X_test,y_train,y_test=train_test_split(X,y)

from sklearn.preprocessing import StandardScaler
ssc=StandardScaler()
X_train=ssc.fit_transform(X_train)
X_test=ssc.transform(X_test)
from sklearn.linear_model import Lasso # L1正则 绝对值之和 L2平方和之和
las=Lasso()
las.fit(X_train,y_train)
print('las系数:',las.coef_)
print('las截距:',las.intercept_)

from sklearn.metrics import mean_squared_error
from sklearn.metrics import r2_score
y_pred=las.predict(X_test)
print('mse:',mean_squared_error(y_test,y_pred))
print('r2:',r2_score(y_test,y_pred))

疑难小结

实验总结:

        本次实验主要学习了线性回归算法的基本概念、求解问题的流程以及编写代码实现鸢尾花预测问题。通过实验我们了解到,在机器学习中,线性回归是一种基本的模型,可以用来拟合自变量和因变量之间的线性关系,预测未知数据的取值。我们需要根据实际需求选择合适的特征进行建模和调参,以达到最优的预测效果。同时,我们还需要根据评估指标评估模型的性能表现,进而对模型进行优化。

疑难小结:

    1.为什么要将数据集划分为训练集和测试集?

        在机器学习中,我们通常需要将数据集划分为训练集和测试集。训练集用于模型训练,测试集用于模型测试和评估。这是因为如果我们直接使用全部数据进行模型训练和测试,容易造成过拟合现象,即模型在训练数据上表现很好,但在未知数据上表现差。为了避免这种情况,我们需要使用测试集验证模型的泛化能力和性能表现。

    2.如何评估线性回归模型的性能?

        评估线性回归模型的性能通常使用均方误差(Mean Squared Error,MSE)和决定系数(R-Squared)指标进行评估。均方误差表示预测值与实际值之间的差别大小,越小代表模型拟合效果越好。决定系数是一种评估模型拟合程度的指标,表示因变量的变异有多少是可以由自变量解释的,取值范围为0~1,数值越接近1代表模型的拟合效果越好。

    3.线性回归模型是否只能适用于处理连续型数据?

        不完全是。虽然线性回归模型在大多数情况下适用于处理连续型数据,但其实也可以使用一些方法将离散型数据转换为连续型数据。比如说,在分类问题中将类别映射为数值,或者使用独热编码等方法来将离散型数据转换为连续型数据。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

真的卷不栋了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值