• 【特征工程】多项式特征PolynomialFeatures(将数据变化为多项式特征)


    使用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对获得的列表添加列名,用于展示

    1.  
      import numpy as np
    2.  
      import pandas as pd
    3.  
      import matplotlib.pyplot as plt
    4.  
       
    5.  
       
    6.  
      poke_df = pd.read_csv('datasets/Pokemon.csv', encoding='utf-8')
    7.  
      att_de = poke_df[['Attack', 'Defense']]
    8.  
       
    9.  
      # 对att_de进行两两特征之间的多项式特征扩展,可以认为是把特征投向高维
    10.  
      from sklearn.preprocessing import PolynomialFeatures
    11.  
       
    12.  
      #degree 表示多项式的维度,即^2, interaction_only表示是否仅使用a*b,include_bias表示是否引入偏执项1
    13.  
      po = PolynomialFeatures(degree=2, interaction_only=False, include_bias=False)
    14.  
      att_de_po = po.fit_transform(att_de)
    15.  
      print(att_de_po[:5])
    16.  
      # 使用pd.DataFrame将数据转换为pd格式
    17.  
      att_de_po_pd = pd.DataFrame(att_de_po, columns=['Attack', 'Defense', 'Attack^2', 'Att_Def', 'Defense^2'])
    18.  
      print(att_de_po_pd.head())

  • 相关阅读:
    JAVA 一个接口多个实现类
    关于Web服务器
    美团买菜IOS版设备风控浅析与算法还原
    阿里App防Bot新版AliTigerTally方案浅析与算法还原1
    使用php的openssl_encrypt和python的pycrypt进行跨语言的对称加密和解密问题
    一个把人民币小写转换为大写中文的方法
    《重构》代码坏味道
    git 合并分支
    java中SPI机制 代码改变世界
    echo print print_r的区别
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/14248179.html
Copyright © 2020-2023  润新知