【Sklearn驯化-多项式特征】一文搞懂机器学习中多项式特征提取,PolynomialFeatures使用技巧

【Sklearn驯化-多项式特征】一文搞懂机器学习中多项式特征提取,PolynomialFeatures使用技巧
 
本次修炼方法请往下查看
在这里插入图片描述

🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地!
🎇 免费获取相关内容文档关注:微信公众号,发送 pandas 即可获取
🎇 相关内容视频讲解 B站

🎓 博主简介:AI算法驯化师,混迹多个大厂搜索、推荐、广告、数据分析、数据挖掘岗位 个人申请专利40+,熟练掌握机器、深度学习等各类应用算法原理和项目实战经验

🔧 技术专长: 在机器学习、搜索、广告、推荐、CV、NLP、多模态、数据分析等算法相关领域有丰富的项目实战经验。已累计为求职、科研、学习等需求提供近千次有偿|无偿定制化服务,助力多位小伙伴在学习、求职、工作上少走弯路、提高效率,近一年好评率100%

📝 博客风采: 积极分享关于机器学习、深度学习、数据分析、NLP、PyTorch、Python、Linux、工作、项目总结相关的实用内容。

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


下滑查看解决方法

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

  

🎯 1. 基本介绍

  在机器学习中,许多算法基于线性模型,但现实世界的数据往往具有非线性特征。PolynomialFeatures 是 scikit-learn 库中的一个预处理步骤,它可以从现有特征中生成新的特征,这些新特征是原始特征的幂次组合,从而允许模型学习数据中的非线性模式。

💡 2. 公式推导

给定一个特征向量 x = [x1, x2, …, xn],PolynomialFeatures 将生成原始特征的所有幂次组合,直到指定的次数 d。生成的特征集合可以表示为:
f e a t u r e s = [ x 1 , x 2 , x 3 , . . . . . , x n , x 1 2 , x 2 2 , . . . . x n 2 , . . . . ] features = [x1,x2,x3,.....,xn,x1^2, x2^2,....xn^2,....] features=[x1,x2,x3,.....,xn,x12,x22,....xn2,....]
其中,k 和 l 是非负整数,且 k + l ≤ d。

💡 3. 代码实践

  我们构建一个简单的数据来通过上述的方法提取特征,具体的代码如下所示:

from sklearn.datasets import make_regression
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error

# 生成模拟回归数据
X, y = make_regression(n_samples=100, n_features=1, noise=0.1, random_state=42)

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建PolynomialFeatures实例,指定多项式的度数
poly_features = PolynomialFeatures(degree=2)

# 转换训练集和测试集特征
X_train_poly = poly_features.fit_transform(X_train)
X_test_poly = poly_features.transform(X_test)

# 创建线性回归模型实例
lin_reg = LinearRegression()

# 训练模型
lin_reg.fit(X_train_poly, y_train)

# 在测试集上进行预测
y_pred = lin_reg.predict(X_test_poly)

# 计算MSE
mse = mean_squared_error(y_test, y_pred)

print(f"均方误差(MSE): {mse:.2f}")

💡 4. 注意事项

  • 多项式特征会显著增加特征的数量,特别是当特征维度较高或多项式的度数较大时。这可能导致维数灾难。
  • 特征的缩放对多项式转换很敏感,因此在应用 PolynomialFeatures 之前,通常需要对特征进行标准化或归一化。
  • 选择合适的多项式度数是关键,过高或过低的度数都可能影响模型的性能。

💡 5. 总结

  PolynomialFeatures 是 scikit-learn 中一个强大的工具,它允许模型通过增加多项式特征来捕捉数据中的非线性关系。通过本博客的代码示例,我们学习了如何使用 PolynomialFeatures 进行特征转换、训练和评估模型。希望这篇博客能够帮助你更好地理解并应用多项式特征转换技术。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

算法驯化师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值