200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > l2正则化python_机器学习入门之机器学习之路: python线性回归 过拟合 L1与L2正则化...

l2正则化python_机器学习入门之机器学习之路: python线性回归 过拟合 L1与L2正则化...

时间:2020-08-19 13:51:37

相关推荐

l2正则化python_机器学习入门之机器学习之路: python线性回归 过拟合 L1与L2正则化...

本文主要向大家介绍了机器学习入门之机器学习之路: 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

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标人工智能机器学习频道!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。