获取除值之外的功能名称 - SciKitLearn + Pandas

时间:2014-05-08 13:37:50

标签: python csv pandas machine-learning scikit-learn

我为输入生成一组功能,我使用pandas和CSV格式存储为表格。 (每个列标题代表一个要素名称,第一个空白列除外,它是为每行存储类标签的位置)。

我的下一步是从csv文件中读取表格,进入scikit learn。 (我现在再次与熊猫一起做这件事)。但是,在使用不同的特征选择方法(以及不同的最初生成的特征)训练和试验我的模型之后,我想要所选特征的名称。 我认为这应该是微不足道的,但我还没有找到如何做到这一点。 (注意:我不是在处理标准文本文档,因此" CountVectorizer"以及" NaiveBayes" / nltk等都没有帮助我)。  我需要一种方法来获取所选择的特征,(当我在新的"测试"数据上)应用模型和选定的特征时,我需要一些方法来删除未选择的特征。

非常感谢!

我的数据目前加载如下:

import numpy as np
import pandas as pd
from sklearn.preprocessing import LabelEncoder, LabelBinarizer

def load_data(filename="Feat_normalized.csv") :
    df = pd.read_csv(filename, index_col=0)
    lb = LabelEncoder()
    labels = lb.fit_transform((df.index.values))
    features = df.values
    feature_names = list(df.columns)
    feature_names.pop(0)  #Remove index.
    return (features, labels, lb)

features, labels, lb_encoder = load_data(filename)
X, y = features, labels

clf_logit = LogisticRegression(penalty="l1", dual=False, class_weight='auto')
X_reduced = clf_logit.fit_transform(X, y)
print('New sparse (filtered) features matrix size:')
print(X_svm.shape)

#Then fit to various models, Random forests, SVM, etc'.. 

截断输入数据/ csv中前两行的示例:

            AA_C    AA__D   AA__E   AA_F    AA__G   AA_H    AA_I    AA_K    AA_L    AA_M
Mammal_sequence_1.0.fasta   3.838099345 0.456591162 3.764884604 3.620232638 3.460992571 3.858487012 2.69247235  3.18710619  3.671029774 4.625996297 1.542632799

(AA _"" =功能名称.Mammal_sequence_1.0.fasta =班级名称/标签;(每行1个,空标题)。

非常感谢!

0 个答案:

没有答案