特征锦囊:如何使用sklearn的多项式来衍生更多的变量?

  • 2020 年 2 月 17 日
  • 笔记

今日锦囊

特征锦囊:如何使用sklearn的多项式来衍生更多的变量?

关于这种衍生变量的方式,理论其实大家应该很早也都听说过了,但是如何在Python里实现,也就是今天在这里分享给大家,其实也很简单,就是调用sklearnPolynomialFeatures方法,具体大家可以看看下面的demo。

这里使用一个人体加速度数据集,也就是记录一个人在做不同动作时候,在不同方向上的加速度,分别有3个方向,命名为x、y、z。

# 人体胸部加速度数据集,标签activity的数值为1-7  '''  1-在电脑前工作  2-站立、走路和上下楼梯  3-站立  4-走路  5-上下楼梯  6-与人边走边聊  7-站立着说话    '''  import pandas as pd  df = pd.read_csv('./data/activity_recognizer/1.csv', header=None)  df.columns = ['index','x','y','z','activity']  df.head()  

那么我们可以直接调用刚刚说的办法,然后对于数值型变量多项式的变量扩展,代码如下:

# 扩展数值特征  from sklearn.preprocessing import PolynomialFeatures    x = df[['x','y','z']]  y = df['activity']    poly = PolynomialFeatures(degree=2, include_bias=False, interaction_only=False)    x_poly = poly.fit_transform(x)  pd.DataFrame(x_poly, columns=poly.get_feature_names()).head()  

就这样子简单的去调用,就可以生成了很多的新变量了。大家有什么疑问吗?可以留言咨询哈~