基于sciket-learn实现线性回归算法

本文介绍了如何使用scikit-learn库实现线性回归算法,通过boston房价数据集去除异常值并进行训练集与测试集划分。展示了线性回归的系数、截距及评价指标。同时,对比了kNN算法在回归问题上的表现,通过网格化搜索找到最优超参数,得出kNN回归的评价结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

线性回归算法主要用来解决回归问题,是许多强大的非线性模型的基础,无论是简单线性回归,还是多元线性回归,思想都是一样的,假设我们找到了最佳拟合方程(对于简单线性回归,多元线性回归对应多个特征作为一组向量)y=ax+b,则对于每一个样本点xi,根据我们的直线方程,预测值为y^i = axi + b,真值为y,我们希望y和y^i的差距尽量的小。

接下来我们看看通过sciket-learn来实现线性回归算法,首先还是导入常用的库

import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression

这里我们使用boston房价的数据集,并且去掉50这个极值,通常在实际应用中,这个极值可能是由于环境因素或者仪器限制等无法获取到真值,所以在这里我们去除数据集里的50

boston = datasets.load_boston()

X = boston.data
y = boston.target

X = X[y < 50.0]
y = y[y < 50.0]

接下里是训练集和测试集的划分以及获取构造器并且fit训练集

X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=666)
lin_reg = LinearRegression()
lin_reg.fit(X_train, y_train)

在查看分类效果前,可以先看看y^方程里的系数与截距

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值