zoukankan      html  css  js  c++  java
  • Python数据挖掘—特征工程—特征选择

    如何选择特征

    根据是否发散及是否相关来选择

    方差选择法

    先计算各个特征的方差,根据阈值,选择方差大于阈值的特征

    方差过滤使用到的是VarianceThreshold类,该类有个参数threshold,该值为最小方差的阈值,然后使用fit_transform进行特征值过滤

    相关系数法

    先计算各个特征对目标值的相关系数,选择更加相关的特征

    递归特征消除法

    使用一个基模型来进行多轮训练,经过多轮训练后,保留指定的特征数

    通过estimator将基模型设置为线性模型(可以设置为其他类型),通过n_features_to_select=2将要选择的特征数设置为2

     1 import pandas
     2 from sklearn.feature_selection import RFE
     3 from sklearn.linear_model import LinearRegression
     4 
     5 data=pandas.read_csv("C:\Users\Jw\Desktop\python_work\Python数据挖掘实战课程课件\6.2\data2.csv")
     6 
     7 feature=data[["月份","季度","广告费用","客流量"]]
     8 rfe=RFE(
     9     estimator=LinearRegression(),   #通过estimator将基模型设置为线性模型
    10     n_features_to_select=2)   #要选择的特征数设置为2
    View Code

    将自变量和因变量通过fit_transfrom传入,并通过get_support()知道所用的哪两列的名字,得到对应列名

    1 sFeature=rfe.fit_transform(
    2     feature,
    3     data["销售额"])
    4 
    5 rfe.get_support()  #要知道这两列的名字
    View Code

    模型选择法

    它是一种吧我们建好的模型对象传入选择器,然后它会根据这个已经建好的模型,自动帮我们选择最好的特征值。

    首先导入数据,给出全部特征值,然后建立模型,作为参数传入SelctFromModel(),在通过fit_transfrom对特征值和因变量进行过滤,选出最优的特征,最后通过get_support()得到对应的列名。

     1 import pandas
     2 from sklearn.linear_model import LinearRegression
     3 from sklearn.feature_selection import SelectFromModel
     4 
     5 data=pandas.read_csv("C:\Users\Jw\Desktop\python_work\Python数据挖掘实战课程课件\6.2\data2.csv")
     6 
     7 feature=data[["月份","季度","广告费用","客流量"]]
     8 
     9 lrModel=LinearRegression()
    10 
    11 selectFromModel=SelectFromModel(lrModel)
    12 
    13 selectFromModel.fit_transform(
    14         feature,
    15         data["销售额"])
    16 
    17 feature.columns[selectFromModel.get_support()]
    View Code
  • 相关阅读:
    storm概述
    Mac下python路径
    Frida的安装
    Mac上安装多版本python的手工处理方式
    idea下编写shell脚本并执行
    CTF PWN专用虚拟机
    二叉树输入与存储的问题
    逆向推荐博客(持续更新)
    Kali 爬坑日记
    官宣:从windos服务器迁移到linux
  • 原文地址:https://www.cnblogs.com/U940634/p/9748667.html
Copyright © 2011-2022 走看看