机器学习--基础算法--多项式回归与模型泛化

本文介绍了机器学习中多项式回归的基础,使用scikit-learn的pipeline实现,并探讨了学习曲线、偏差方差平衡的重要性。接着详细阐述了模型泛化,特别是通过岭回归来降低过拟合风险。最后,讨论了LASSO回归及其在L1、L2正则化和弹性网络中的应用。
摘要由CSDN通过智能技术生成

1 scikit-learn中的多项式回归与pipeline

import numpy as np
import matplotlib.pyplot as plt
x = np.random.uniform(-3, 3, size = 100)
print(x.shape)
x1 = x.reshape(-1, 1)
print(x1.shape)
y = 0.5 * x ** 2 + 2 + np.random.normal(0, 1, 100)
print(y.shape)
>>>(100,)
>>>(100, 1)
>>>(100,)
plt.scatter(x, y)
plt.show()

输出:
在这里插入图片描述

# 使用PolynomialFeatures为数据添加多项式特征
from sklearn.preprocessing import PolynomialFeatures
# degree=2表示最多添加2次多项式特征
poly = PolynomialFeatures(degree = 2)
poly.fit(x1)
# 将数据转化成含2次多项式特征的数据
x2 = poly.transform(x1)
print(x2.shape)
>>>(100, 3)
x2[:5, :] 
# 第一列是x的0次幂,第二列是x,第三列是x^2
>>>array([[ 1.        ,  1.81232389,  3.28451788],
       [ 1.        , -2.56381436,  6.5731441 ],
       [ 1.        ,  2.8426554 ,  8.08068973],
       [ 1.        , -0.79656011,  0.63450801],
       [ 1.        ,  2.93915965,  8.63865947]])
from sklearn.linear_model import LinearRegression
lin_reg = LinearRegression()
lin_reg.fit(x2, y)
y_predict = lin_reg.predict(x2)
plt.scatter(x, y)
plt.plot(np.sort(x), y_predict[np.argsort(x)].reshape(100, 1), color = 'r')
plt.show()

输出:
在这里插入图片描述

lin_reg.coef_
>>>array([[0.        , 0.05280184, 0.45891719]])
lin_reg.intercept_
>>>array([2.25953634])

关于PolynomialFeatures:

x = np.arange(1, 11).reshape(5, 2)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>