import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

from sklearn.model_selection import train_test_split,cross_val_score
from sklearn.linear_model import Lasso, Ridge, LinearRegression as LR
from sklearn.model_selection import GridSearchCV
from sklearn.metrics import r2_score, explained_variance_score as EVS, mean_squared_error as MSE


data=pd.read_excel('标准化数据.xlsx',sheet_name=0)
data
x = data[['接收距离(cm)', '热风速度(r/min)', '厚度mm', '孔隙率(%)', '压缩回弹性率(%)', '透气性 mm/s']]
y = data['新目标']
from sklearn.preprocessing import PolynomialFeatures   #StandardScaler

#degree 表示多项式的维度,即^2, interaction_only表示是否仅使用a*b, include_bias表示是否添加一列全部等于1的偏置项
po = PolynomialFeatures(degree=2, interaction_only=False, include_bias=False)
x_poly = po.fit_transform(x)
pd.DataFrame(x_poly).head()
# 使用pd.DataFrame将数据转换为pd格式
x_poly = pd.DataFrame(x_poly, 
                     columns=['接收距离(cm)', '热风速度(r/min)', '厚度mm', '孔隙率(%)', '压缩回弹性率(%)', '透气性 mm/s', '接收距离(cm)^2', '接收距离(cm)*热风速度(r/min)', '接收距离(cm)*厚度mm', '接收距离(cm)*孔隙率(%)', '接收距离(cm)*压缩回弹性率(%)','接收距离(cm)*透气性 mm/s', '热风速度(r/min)^2','热风速度(r/min)*厚度mm','热风速度(r/min)*孔隙率(%)', '热风速度(r/min)*压缩回弹性率(%)','热风速度(r/min)*透气性 mm/s','厚度mm^2', '厚度mm*孔隙率(%)', '厚度mm*压缩回弹性率(%)', '厚度mm*透气性 mm/s','孔隙率(%)^2', '孔隙率(%)*压缩回弹性率(%)', '孔隙率(%)*透气性 mm/s','压缩回弹性率(%)^2', '压缩回弹性率(%)*透气性 mm/s','透气性 mm/s^2'])
x_poly.head()

本文展示了如何使用 sklearn.preprocessing.PolynomialFeatures 生成多项式特征,并将生成的特征作为新的特征集用于多项式回归。

关键步骤:

  1. 导入必要的库: 包括 numpymatplotlib.pyplotpandassklearn.model_selectionsklearn.linear_modelsklearn.preprocessing 等库。
  2. 加载数据: 使用 pd.read_excel 从 Excel 文件中读取数据。
  3. 创建特征矩阵和目标变量: 从数据集中选择特征列并将其赋值给 x,并将目标变量赋值给 y
  4. 使用 PolynomialFeatures 生成多项式特征: 使用 PolynomialFeatures 对象,设置 degree 参数为 2,并设置 interaction_onlyinclude_bias 参数,生成多项式特征。
  5. 将多项式特征转换为 DataFrame: 使用 pd.DataFrame 将多项式特征转换为 DataFrame,并设置列名。

注意事项:

  • degree 参数控制多项式特征的最高次数。例如,degree=2 表示生成二次多项式特征。
  • interaction_only 参数控制是否仅生成交互项。例如,如果 interaction_only=True,则不会生成 x^2 这样的项,而是生成 x*y 这样的交互项。
  • include_bias 参数控制是否添加一列全部等于 1 的偏置项。

本代码示例展示了如何使用 PolynomialFeatures 生成多项式特征,你可以根据实际需求调整参数。在进行多项式回归之前,需要对数据进行合适的预处理,例如标准化或归一化。

希望本篇文章对你有所帮助,如果你有任何问题或建议,欢迎在评论区留言。


原文地址: https://www.cveoy.top/t/topic/fOPw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录