机器学习之linear_model(普通最小二乘法手写+sklearn实现+评价指标)

本文详细介绍如何使用最小二乘法进行线性回归分析,包括手动计算和使用sklearn库的全过程,对比了两种方法的预测结果及评估指标。

y=wi*xi+b,基于最小二乘法的线性回归:寻找参数w和b,使得w和b对x_test_data的预测值y_pred_data与真实的回归目标y_test_data之间的均方误差最小。

公式推导:
在这里插入图片描述
基于最小二乘法构造linear_model有5个步骤:
1、导包。

from sklearn import linear_model
import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import mean_squared_error,r2_score,mean_absolute_error

sklearn中有专门的线性模型包linear_model,numpy用于生成数据,matplotlib用于画图,另外导入MSE,R_Square和MAE三个评价指标。
2、构造数据集。可以自动生成数据,也可以寻找现有数据,以下数据是作业中的数据,样本数据只有一个特征。
3、训练模型。
4、输出系数w和截距b并对测试集进行预测。
5、作图。

完整代码:

import pandas as pd
import matplotlib.pyplot as plt
from sklearn import linear_model
import numpy as np
from sklearn.metrics import mean_squared_error, r2_score, mean_absolute_error


def load_data():
    data = pd.read_csv('Salary_Data.csv', encoding='gbk')
    data = data.values.tolist()
    train_x = []
    train_y = []
    test_x = []
    test_y = []
    # 前一半作为训练集,后一半作为测试集
    for i in range(len(data)):
        if i < len(data) / 2:
            train_x.append(data[i][0])
            train_y.append(data[i][1])
        else
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Cyril_KI

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

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

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

打赏作者

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

抵扣说明:

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

余额充值