本文主要向大家介绍了机器学习入门之机器学习之路: python线性回归 过拟合 L1与L2正则化,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。
正则化:提高模型在未知数据上的泛化能力避免参数过拟合正则化常用的方法:在目标函数上增加对参数的惩罚项削减某一参数对结果的影响力度L1正则化:lasso在线性回归的目标函数后面加上L1范数向量惩罚项。f=w*x^n+b+k*||w||1x为输入的样本特征w为学习到的每个特征的参数n为次数b为偏置、截距||w||1为特征参数的L1范数,作为惩罚向量k为惩罚的力度L2范数正则化:ridge在线性回归的目标函数后面加上L2范数向量惩罚项。f=w*x^n+b+k*||w||2x为输入的样本特征w为学习到的每个特征的参数n为次数b为偏置、截距||w||2为特征参数的L2范数,作为惩罚向量k为惩罚的力度下面模拟根据蛋糕的直径大小预测蛋糕价格采用了4次线性模型,是一个过拟合的模型分别使用两个正则化方法进行学习和预测
1fromsklearn.linear_modelimportLinearRegression,Lasso,Ridge
2#导入多项式特征生成器
3fromsklearn.preprocessingimportPolynomialFeatures
4
5
6‘‘‘
7正则化:
8提高模型在未知数据上的泛化能力
9避免参数过拟合
10正则化常用的方法:
11在目标函数上增加对参数的惩罚项
12削减某一参数对结果的影响力度
13
14L1正则化:lasso
15在线性回归的目标函数后面加上L1范数向量惩罚项。
16
17f=w*x^n+b+k*||w||1
18
19x为输入的样本特征
20w为学习到的每个特征的参数
21n为次数
22b为偏置、截距
23||w||1为特征参数的L1范数,作为惩罚向量
24k为惩罚的力度
25
26L2范数正则化:ridge
27在线性回归的目标函数后面加上L2范数向量惩罚项。
28
29f=w*x^n+b+k*||w||2
30
31x为输入的样本特征
32w为学习到的每个特征的参数
33n为次数
34b为偏置、截距
35||w||2为特征参数的L2范数,作为惩罚向量
36k为惩罚的力度
37
38
39下面模拟根据蛋糕的直径大小预测蛋糕价格
40采用了4次线性模型,是一个过拟合的模型
41分别使用两个正则化方法进行学习和预测
42
43‘‘‘
44
45#样本的训练数据,特征和目标值
46x_train=[[6],[8],[10],[14],[18]]
47y_train=[[7],[9],[13],[17.5],[18]]
48#准备测试数据
49x_test=[[6],[8],[11],[16]]
50y_test=[[8],[12],[15],[18]]
51#进行四次线性回归模型拟合
52poly4=PolynomialFeatures(degree=4)#4次多项式特征生成器
53x_train_poly4=poly4.fit_transform(x_train)
54#建立模型预测
55regressor_poly4=LinearRegression()
56regressor_poly4.fit(x_train_poly4,y_train)
57x_test_poly4=poly4.transform(x_test)
58print("四次线性模型预测得分:",regressor_poly4.score(x_test_poly4,y_test))#0.8095880795746723
59
60#采用L1范数正则化线性模型进行学习和预测
61lasso_poly4=Lasso()
62lasso_poly4.fit(x_train_poly4,y_train)
63print("L1正则化的预测得分为:",lasso_poly4.score(x_test_poly4,y_test))#0.8388926873604382
64
65#采用L2范数正则化线性模型进行学习和预测
66ridge_poly4=Ridge()
67ridge_poly4.fit(x_train_poly4,y_train)
68print("L2正则化的预测得分为:",ridge_poly4.score(x_test_poly4,y_test))#0.837459366456
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标人工智能机器学习频道!