zoukankan      html  css  js  c++  java
  • 机器学习入门-数值特征-进行多项式变化(将特征投影到高维度上) 1.PolynomialFeatures(将数据变化为多项式特征)

    函数说明:

     1. PolynomialFeatures(degree=2, interaction_only=False, include_bias=False)

     参数说明:degree=2,表示多项式的变化维度为2,即^2, interaction_only表示是否只使用a*b, include_bias是否添加一列全部等于1的偏置项  

               

    对数据进行多项式变化,将两个特征a, b如果是进行^2多项式变化操作,那么就相当于多出来了3个特征即a^2, a*b, b^2 

    一般我们在使用支持向量机的时候,由于数据在低纬度上的不可分,因此我们需要对数据做一个高维度的映射,以使得数据能够更加的可分

    数据说明:我们使用了游戏数据中的攻击和防御两个特征用来构造多项式特征,使用的多项式为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进行两两特征之间的多项式特征扩展,可以认为是把特征投向高维
    from sklearn.preprocessing import PolynomialFeatures
    
    #degree 表示多项式的维度,即^2, interaction_only表示是否仅使用a*b,include_bias表示是否引入偏执项1
    po = PolynomialFeatures(degree=2, interaction_only=False, include_bias=False)
    att_de_po = po.fit_transform(att_de)
    print(att_de_po[:5])
    # 使用pd.DataFrame将数据转换为pd格式
    att_de_po_pd = pd.DataFrame(att_de_po, columns=['Attack', 'Defense', 'Attack^2', 'Att_Def', 'Defense^2'])
    print(att_de_po_pd.head())

                                 变化后的参数特征

  • 相关阅读:
    关于DataGrid最后一页只有一行记录时,删除此记录出错的问题
    数据库开发个人总结(ADO.NET小结)
    MSSQL server数据库开发精典技巧
    愈强愈勇(奥运六星)
    中国与日本的生活对比 转)
    古龙妙语录
    DataGrid单击行时改变颜色
    VS.NET 2003 控件命名规范
    qt国际化
    Histogram matching using python, opencv
  • 原文地址:https://www.cnblogs.com/my-love-is-python/p/10321260.html
Copyright © 2011-2022 走看看