我为输入生成一组功能,我使用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个,空标题)。
非常感谢!