如何使用scikit-learn中的Information Gain度量选择Dataframe中的最佳功能

林恩

我想使用“信息增益”度量(scikit-learn中的“互信息”)来识别数据帧的10个最佳功能,然后将它们显示在表格中(根据信息增益获得的分数以升序排列)。

在此示例中,features数据框包含所有有趣的训练数据,这些数据可以告诉您餐厅是否关门。

# Initialization of data and labels
x = features.copy () # "x" contains all training data
y = x ["closed"] # "y" contains the labels of the records in "x"

# Elimination of the class column (closed) of features
x = x.drop ('closed', axis = 1)

# this is x.columns, sorry for the mix french and english
features_columns = ['moyenne_etoiles', 'ville', 'zone', 'nb_restaurants_zone',
       'zone_categories_intersection', 'ville_categories_intersection',
       'nb_restaurant_meme_annee', 'ecart_type_etoiles', 'tendance_etoiles',
       'nb_avis', 'nb_avis_favorables', 'nb_avis_defavorables',
       'ratio_avis_favorables', 'ratio_avis_defavorables',
       'nb_avis_favorables_mention', 'nb_avis_defavorables_mention',
       'nb_avis_favorables_elites', 'nb_avis_defavorables_elites',
       'nb_conseils', 'nb_conseils_compliment', 'nb_conseils_elites',
       'nb_checkin', 'moyenne_checkin', 'annual_std', 'chaine',
       'nb_heures_ouverture_semaine', 'ouvert_samedi', 'ouvert_dimanche',
       'ouvert_lundi', 'ouvert_vendredi', 'emporter', 'livraison',
       'bon_pour_groupes', 'bon_pour_enfants', 'reservation', 'prix',
       'terrasse']

# normalization
std_scale = preprocessing.StandardScaler().fit(features[features_columns])
normalized_data = std_scale.transform(features[features_columns])
labels = np.array(features['closed'])

# split the data 
train_features, test_features, train_labels, test_labels = train_test_split(normalized_data, labels, test_size = 0.2, random_state = 42)

labels_true = ?
labels_pred = ?

# I dont really know how to use this function to achieve what i want
from sklearn.feature_selection import mutual_info_classif
from sklearn.datasets import make_classification



# Get the mutual information coefficients and convert them to a data frame
coeff_df =pd.DataFrame(features,
                         columns=['Coefficient'], index=x.columns)

coeff_df.head()


使用互惠互助得分实现此目的的正确语法是什么?

克尔科罗夫

该adjusted_ mutual_info_score地面实况标签与分类标签的预测进行比较。两个标签数组必须具有相同的形状(nsamples)。

您需要Scikit-Learn的common_info_classif才能实现。将要素数组和相应的标签传递给common_info_classif,以获取每个要素与目标之间的估计互信息。

import numpy as np
import pandas as pd

from sklearn.feature_selection import mutual_info_classif
from sklearn.datasets import make_classification

# Generate a sample data frame
X, y = make_classification(n_samples=1000, n_features=4,
                           n_informative=2, n_redundant=2,
                           random_state=0, shuffle=False)
feature_columns = ['A', 'B', 'C', 'D']
features = pd.DataFrame(X, columns=feature_columns)

# Get the mutual information coefficients and convert them to a data frame
coeff_df =pd.DataFrame(mutual_info_classif(X, y).reshape(-1, 1),
                         columns=['Coefficient'], index=feature_columns)

输出量

features.head(3)
Out[43]: 
          A         B         C         D
0 -1.668532 -1.299013  0.799353 -1.559985
1 -2.972883 -1.088783  1.953804 -1.891656
2 -0.596141 -1.370070 -0.105818 -1.213570

# Displaying only the top two features. Adjust the number as required.
coeff_df.sort_values(by='Coefficient', ascending=False)[:2]

Out[44]: 
   Coefficient
B     0.523911
D     0.366884

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Scikit Learn在Random Forest中调整参数?

来自分类Dev

Python:如何正确处理熊猫DataFrame中的NaN,以在Scikit-learn中进行功能选择

来自分类Dev

如何在scikit-learn中使用tfidf计算功能?

来自分类Dev

如何在scikit-learn中使用tfidf计算功能?

来自分类Dev

如何使用scikit-learn中的哈希技巧对bigrams进行矢量化处理?

来自分类Dev

如何使用Scikit Learn CountVectorizer获得语料库中的单词频率?

来自分类Dev

如何使用scikit-learn在Python中打印简单线性回归的截距和斜率?

来自分类Dev

如何在scikit-learn的`pipeline'中使用自定义功能选择功能

来自分类Dev

scikit 中的 GridSearchCV 如何为 k 折选择最佳参数

来自分类Dev

如何在scikit-learn中预测时间序列?

来自分类常见问题

scikit-learn中的class_weight参数如何工作?

来自分类Dev

在Scikit-learn的RandomForestRegressor中如何排列“ feature_importances_”

来自分类Dev

如何在scikit-learn中理解DecisionTreeClassifier的输出?

来自分类Dev

如何在scikit-learn的DecisionTreeRegressor中获取节点的MSE?

来自分类Dev

在Scikit-learn的RandomForestRegressor中如何排列“ feature_importances_”

来自分类Dev

如何在scikit Learn,Python中处理名义数据?

来自分类Dev

删除scikit Learn中的特定功能

来自分类Dev

在scikit-learn中对LogisticRegressionCV()使用l1惩罚

来自分类Dev

使用 scikit learn 在词典学习中获得记忆错误

来自分类Dev

如何使用scikit中的外部数据执行PCA / LDA?

来自分类Dev

如何从scikit-learn中与Forecast_proba一起使用的cross_val_predict获取类标签

来自分类Dev

如何使用Scikit Learn dictvectorizer从Python中的密集数据帧获取编码数据帧?

来自分类Dev

Scikit Learn中的交叉验证

来自分类Dev

Scikit Learn中的距离指标

来自分类Dev

如何在scikit-learn中的LogisticRegressionCV中实现不同的计分功能?

来自分类Dev

如何使用scikit-learn PCA进行功能简化并知道哪些功能被丢弃

来自分类Dev

我们如何使用scikit-learn了解选定和省略的功能(列)名称(标题)

来自分类Dev

使用Scikit-Learn的SVR,您如何结合分类和连续功能来预测目标?

来自分类Dev

如何使用scikit Learn确保测试集和训练集具有相同的功能?

Related 相关文章

  1. 1

    如何使用Scikit Learn在Random Forest中调整参数?

  2. 2

    Python:如何正确处理熊猫DataFrame中的NaN,以在Scikit-learn中进行功能选择

  3. 3

    如何在scikit-learn中使用tfidf计算功能?

  4. 4

    如何在scikit-learn中使用tfidf计算功能?

  5. 5

    如何使用scikit-learn中的哈希技巧对bigrams进行矢量化处理?

  6. 6

    如何使用Scikit Learn CountVectorizer获得语料库中的单词频率?

  7. 7

    如何使用scikit-learn在Python中打印简单线性回归的截距和斜率?

  8. 8

    如何在scikit-learn的`pipeline'中使用自定义功能选择功能

  9. 9

    scikit 中的 GridSearchCV 如何为 k 折选择最佳参数

  10. 10

    如何在scikit-learn中预测时间序列?

  11. 11

    scikit-learn中的class_weight参数如何工作?

  12. 12

    在Scikit-learn的RandomForestRegressor中如何排列“ feature_importances_”

  13. 13

    如何在scikit-learn中理解DecisionTreeClassifier的输出?

  14. 14

    如何在scikit-learn的DecisionTreeRegressor中获取节点的MSE?

  15. 15

    在Scikit-learn的RandomForestRegressor中如何排列“ feature_importances_”

  16. 16

    如何在scikit Learn,Python中处理名义数据?

  17. 17

    删除scikit Learn中的特定功能

  18. 18

    在scikit-learn中对LogisticRegressionCV()使用l1惩罚

  19. 19

    使用 scikit learn 在词典学习中获得记忆错误

  20. 20

    如何使用scikit中的外部数据执行PCA / LDA?

  21. 21

    如何从scikit-learn中与Forecast_proba一起使用的cross_val_predict获取类标签

  22. 22

    如何使用Scikit Learn dictvectorizer从Python中的密集数据帧获取编码数据帧?

  23. 23

    Scikit Learn中的交叉验证

  24. 24

    Scikit Learn中的距离指标

  25. 25

    如何在scikit-learn中的LogisticRegressionCV中实现不同的计分功能?

  26. 26

    如何使用scikit-learn PCA进行功能简化并知道哪些功能被丢弃

  27. 27

    我们如何使用scikit-learn了解选定和省略的功能(列)名称(标题)

  28. 28

    使用Scikit-Learn的SVR,您如何结合分类和连续功能来预测目标?

  29. 29

    如何使用scikit Learn确保测试集和训练集具有相同的功能?

热门标签

归档