zoukankan      html  css  js  c++  java
  • 【特征工程】多项式特征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())

  • 相关阅读:
    文件的操作
    encode,decode,str,bytes
    字符串操作
    suse12安装mysql8.16
    VMware配置共享磁盘安装RAC
    Linux过滤文本并显示过滤文字的上下文
    Linux服务器卸载mysql指南
    oracle 各版本各日志存放位置
    impdp按用户导入
    数据泵expdp定时备份
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/14248179.html
Copyright © 2011-2022 走看看