python求解特征值_Python大规模建模的特征值选择和性能评估方法详解

本文介绍了在Python中解决大规模建模时如何选择最佳特征、模型及其参数的方法。通过遍历所有特征组合,使用Logistic Regression模型计算性能评估,找出最优特征组合。接着,对Decision Tree和Random Forest模型进行调参,发现Random Forest在n_estimators=40时达到最佳准确率。最后强调,当特征变量数量巨大时,需要考虑其他选择特征的方法。
摘要由CSDN通过智能技术生成

大量的特征变量,很多的模型,模型也有很多参数,如何选择合适的特征、合适的模型和合适的模型参数,这对建模是很重要的,但也是很困难的。并且选择最优的方案,方法也是很多的,这里将其中一种方法尽量描述清楚:通过遍历所有的特征组合,用最一般的模型去拟合,并计算各种特征组合的模型的性能评估,选择最好的特征组合。用最好的特征组合去创建其他模型及各种参数,确定最好的模型和参数。

数据说明

加载sklearn的数据集,X是一个13维度的特征变量,y是一个一维的分类离散变量。这里我们寻求一个最好的X的特征组合去拟合y的分类。下面是加载数据集的代码:

from sklearn.datasets import load_wine

wine = load_wine()

X = wine.data

y = wine.target

一、加载需要用到的python模块

import matplotlib.pyplot as plt

import pandas as pd

import numpy as np

from sklearn import tree

from sklearn import ensemble

from sklearn import linear_model

from sklearn.model_selection import cross_val_score

from sklearn.model_selection import train_test_split

from sklearn.datasets import load_wine

from sklearn.grid_search import GridSearchCV

二、选择最佳的特征

2.1 加载数据

整理数据,把X转换为pandas的DataFrame类型,定义一个X的所有特征的组合。

wine = load_wine()

X = wine.data

y = wine.target

X = pd.DataFrame(X)

features = [0,1,2,3,4,5,6,7,8,9,10,11,12]

2.2 定义特征遍历函数

定义一个特征遍历函数combinations,并且把特征组合遍历存放在group_combinations

def combinations(ls):

n=1<

tmp=[]

for i in range(n):

bits=[i>>offset&1 for offset in range(len(ls)-1,-1,-1)]

if np.sum(bits)>0:

current=[ls[index] for (index,bit) in enumerate(bits) if bit==1]

tmp= tmp+[current]

return tmp

group_combinations = combinations(features)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值