使用sklearn.preprocessing.PolynomialFeatures来进行特征的构造。
它是使用多项式的方法来进行的,如果有a,b两个特征,那么它的2次多项式为(1,a,b,a^2,ab, b^2)。
PolynomialFeatures有三个参数
degree:控制多项式的度
interaction_only: 默认为False,如果指定为True,那么就不会有特征自己和自己结合的项,上面的二次项中没有a^2和b^2。
include_bias:默认为True。如果为True的话,那么就会有上面的 1那一项。
代码演示
数据说明:我们使用了游戏数据中的攻击和防御两个特征用来构造多项式特征,使用的多项式为2
代码:
第一步:导入数据
第二步:分离出[‘Attack’, ‘Defense’]两个特征
第三步:使用 PolynomialFeatures 进行多项式的变化,
第四步:使用pd.DataFrame对获得的列表添加列名,用于展示
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
poke_df = pd.read_csv('datasets/Pokemon.csv', encoding='utf-8')
att_de = poke_df[['Attack', 'Defense']]
# 对att_de进行两两特征之间的多项式特征扩