scikit-learn笔记----处理线性模型

本文详细探讨了scikit-learn库中的线性模型,包括线性回归、岭回归、LASSO正则化、LARS正则化、逻辑回归、贝叶斯岭回归以及梯度提升回归(GBR),深入分析了如何利用这些模型解决回归和分类问题。
摘要由CSDN通过智能技术生成

1. 线性回归模型

from sklearn import datasets
from sklearn.linear_model import LinearRegression

boston = datasets.load_boston()
# LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)
lr = LinearRegression()
lr.fit(boston.data, boston.target)

predictions = lr.predict(boston.data)
#残差(误差)平均值
import numpy as np
np.mean(predictions - boston.target)
>>>-4.7743978292180645e-16

#均方误差
def MSE(target, predictions):
    squared_deviation = np.power(target - predictions, 2)
    return np.mean(squared_deviation)
#平均绝对误差
def MAE(target, predictions):
    absolute_deviation = np.abs(target - predictions)
    return np.mean(absolute_deviation)

print(MSE(boston.target, predictions))
print(MAE(boston.target, predictions))
>>>21.8977792177
>>>3.272944638

2. 用岭回归弥补线性回归的不足

from sklearn.datasets import make_regression
import numpy as np

# 建一个有3个自变量的数据集,但是其秩为2,因此3个自变量中有两个自变量存在相关性。
reg_data, reg_target = make_regression(n_samples=2000, n_features=3, effective_rank=2, noise=10)
# 使用回归求参数
def fit_2_regression(lr):
    n_bootstraps = 1000
    coefs = np.ones((n_bootstraps, 3))
    len_data = len(reg_data)
    subsample_size = np.int(0.75 * len_data)
    subsample = lambda: np.random.choice(np.arange(0, len_data), size=subsample_size)
    
    for i in range(n_bootstraps):
        subsample_idx = subsample()
        subsample_X = reg_data[subsample_idx]
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值