python正则化调优_介绍一下正则化Regularization

本文介绍了正则化的主要用途,防止过拟合,并通过KNN和线性回归实例展示了其作用。正则化分为L1(Lasso)和L2(Ridge)两种,ElasticNet结合两者优点。文章还探讨了正则化的由来,从期望风险、经验风险、结构风险等角度阐述,并从范数角度讨论了不同正则项的选择。最后,给出了Python中正则化的实现示例。
摘要由CSDN通过智能技术生成

在看完大佬们写的几篇很有启示的文章后,链接:机器学习中常常提到的正则化到底是什么意思?​www.zhihu.comElasticNet回归及机器学习正则化_人工智能_曾时明月-CSDN博客​blog.csdn.net

以下为个人对正则化Regularization是what, how to apply, where its come from, and its code 的拙见。

如果有理解的不对的地方,请您指出,感谢您的阅读!

谈论正则化Regularization分为四个部分。

一、用途;二、概念;三、由来原因;四、Python实现。

在第三部分内打算从多角度分析正则化的由来。(从经验风险、期望风险、结构风险的角度;从范数norm的角度;及从几何解释选择一项范数、二项范数。)

一、用途

正则化Regularization主要用来防止overfitting。

下面举例会发生的一些模型评估情况:比如在KNN(K-Nearest Neighbors)中,单纯用knn.score作模型评估会忽视样本不平衡情况,导致评估正确率不准确。用代码knn.score得到是分子除以分母的形式:

这种测评model方法并不完美。因为有可能发生一种情况:不平衡样本比例,导致错评model。比如判断垃圾邮件分类,一共有100个测试数据集,只有5个是垃圾邮件。正确率有95%,即使无法判断垃圾邮件(预测有100%的正确率)与实际正确率也相差不大。可以采用confusion matrix 方法。(PS: 下一篇,会写各种评估模型性能的方法。)

2. 比如在线性回归Linner Regression 中,可以用代码.score得到,是R squared衡量X与y相关性,它评价你选择的线性模型合适与否。如果R squared偏小,说明特征X的weight比重较小,还有其他的特征没有考虑进去。另外也可以采用均方根误差(RMSE)作为评价回归模型的另一个常用指标。

Train/test split for regression

Train/test split for regression

# Import necessary modules

from sklearn.model_selection import train_test_split

from sklearn.linear_model import LinearRegression

import numpy as np

from sklearn.metrics import mean_squared_error

# Create training and test sets

X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.3,random_state=42)

# Fit the regressor to the training data

reg_all=LinearRegression()

reg_all.fit(X_train,y_train)

# Predict on the test data: y_prediction

y_prediction=reg_all.predict(X_test)

# Compute and print R^2 and RMSE

print("R^2:{}".format(reg_all.score(X_test,y_test)))

rmse=np.sqrt(mean_square

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值