scikit-learn 线性回归 原理与使用

本文介绍了scikit-learn中的线性回归模型,包括普通线性回归的最小二乘法原理,岭回归在处理共线性问题上的改进,以及lasso回归通过拉格朗日乘数法实现系数缩减。通过对比,展示了三种模型在过拟合、共线性情况下的应用场景和选择策略。
摘要由CSDN通过智能技术生成

一、 普通线性回归

原理:最小二乘法
假定输人数据存放在矩阵X中,而回归系数存放在向量W中。那么对于给定的数据X1, 预测结果将会通过Y=X*W给出。有一些X和对应的Y,怎样才能找到W呢?一个常用的方法就是找出使误差最小的W。这里的误差是指预测Y值和真实Y值之间的差值,使用该误差的简单累加将使得正差值和负差值相互抵消,所以我 们采用平方误差。

(y - w*x)^2     
y^2 - 2*w*x*y + x^2*w^2
-2xy + 2x^2*w = 0
-y + wx = 0
xw = y
xTxw = xTy         # 两边乘以xT 转置矩阵
w = (xTx)^-1(xTy) # 平方和最小的情况:w在求导时为0 

import numpy as np
from pandas import Series,DataFrame
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
import sklearn.datasets as datasets
from sklearn.metrics import r2_score
diabetes = datasets.load_diabetes()
data = diabetes.data
target = diabetes.target
feature_names = diabetes.feature_names
samples = DataFrame(data = data, columns = feature_names)       # 将ndarray数据转成DataFrame (442, 10)

X_train = samples[:400]       #
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值