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())

  • 相关阅读:
    Cors 跨域 共享
    关于上传视频到七牛的一些解决方案
    网站上传视频注意点
    Node.js 的环境配置
    动态加载js
    java web项目启动时自动加载自定义properties文件
    Apache Commons 工具类介绍及简单使用
    spring常用的工具类
    shiro内置过滤器研究
    抓取Js动态生成数据且以滚动页面方式分页的网页
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/14248179.html
Copyright © 2011-2022 走看看