回归分析(二)——RANSAC强化模型+正则化解决过拟合

本文探讨了如何使用RANSAC算法强化回归模型,并介绍了正则化方法如岭回归、LASSO和弹性网络来解决过拟合问题。通过sklearn库实现这些方法,并通过模型性能评估指标如均方误差和决定系数来衡量模型效果。
摘要由CSDN通过智能技术生成

git源码:https://github.com/xuman-Amy/Regression-Analysis

【运用RANSAC 训练强化的回归模型】

 RANdom SAmple Consensus (RANSAC),随机样本一致性算法,将回归模型与数据的子集相匹配,即局内点

【基本步骤】

(1)选择一个随机数量的样本作为局内点,来fit一个模型

(2)用除去(1)中之外的所有点对抗这个模型,将在给定容忍值内的点添加进局内点

(3)用所有局内点重新 fit 模型

(4)通过比较局内点来估计模型的错误率

(5)如果模型性能达到了某个设定的阈值或者达到了一定数量的迭代,终止算法;否则返回(1)

【sklearn 实现RANSAC】

# random sample consensus
from sklearn.linear_model import RANSACRegressor,LinearRegression
# 参数说明:base_estimator 仅限于回归估计,默然LinearRegression 
# min_samples 每次随机采样的最小数量样本
# residual_threshold 残差临界值,样本被划分为局内点的最小残差值,临界值指与目标值y偏差的中位值
# max_trials 最大迭代次数
#loss 误差。absolute_loss 绝对误差 当绝对误差大于临界值 归为局外点
ransac = RANSACRegressor(base_estimator = LinearRegression(), 
                         min_samples = 50,
                         residual_threshold = 5.0,
                         max_trials = 100,
                         loss = 'absolute_loss',
                         random_state = 0)
ransac.fit(X,y)

【画出得到的局内点和局外点】

# obtain inliers and outliers
inlier_mask = ransac.inlier_mask_
outlier_mask = np.logical_not(inlier_mask)
line_X = np.arange(3, 10, 1)
line_y_ransac = ransac.predict(line_X[:, np.newaxis])

plt.scatter(X[in
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值