1
DataFrameを使用して、feature_importances_出力の制限を設定したいとします。以下 は(このblogから参照してください)私のコードです:DataFrame Pandasのlimit feature_importances_を設定する
train = df_visualization.sample(frac=0.9,random_state=639)
test = df_visualization.drop(train.index)
train.to_csv('train.csv',encoding='utf-8')
test.to_csv('test.csv',encoding='utf-8')
train_dis = train.iloc[:,:66]
train_val = train_dis.values
train_in = train_val[:,:65]
train_out = train_val[:,65]
test_dis = test.iloc[:,:66]
test_val = test_dis.values
test_in = test_val[:,:65]
test_out = test_val[:,65]
dt = tree.DecisionTreeClassifier(random_state=59,criterion='entropy')
dt = dt.fit(train_in,train_out)
score = dt.score(train_in,train_out)
test_predicted = dt.predict(test_in)
# Print the feature ranking
print("Feature ranking:")
print (DataFrame(dt.feature_importances_, columns = ["Imp"], index = train.iloc[:,:65].columns).sort_values(['Imp'], ascending = False))
私の問題は、今ではすべての65個の機能を表示しています。 出力:
Imp
wbc 0.227780
age 0.100949
gcs 0.069359
hr 0.069270
rbs 0.053418
sbp 0.052067
Intubation-No 0.050729
... ...
Babinski-Normal 0.000000
ABG-Metabolic Alkolosis 0.000000
ABG-Respiratory Acidosis 0.000000
Reflexes-Unilateral Hyperreflexia 0.000000
NS-No 0.000000
たとえば、上位5つの機能のみが必要です。 予想される出力:
Imp
wbc 0.227780
age 0.100949
gcs 0.069359
hr 0.069270
rbs 0.053418
更新: 私はitertuplesを使用して表示する方法を得ました。
display = pd.DataFrame(dt.feature_importances_, columns = ["Imp"], index = train.iloc[:,:65].columns).sort_values(['Imp'], ascending = False)
x=0
for row,col in display.itertuples():
if x<5:
print(row,"=",col)
else:
break
x++
出力:
Feature ranking:
wbc = 0.227780409582
age = 0.100949241154
gcs = 0.0693593476192
hr = 0.069270425399
rbs = 0.0534175402602
しかし、私は、これは、出力を得るための効率的な方法であるかどうかを知りたいですか?
感謝を!できます。あなたは "[:: - 1]"の部分を詳述したり、どんな文書に参照してもらえますか?効率について –
(私はプロセスでより高速出力を意味する)、私は時間間隔を記録し、ここで私が得た: 私の方法:0.009999990463256836 あなたの方法:0.019999980926513672 あなたよりも速く私の方法。 –
。説明ありがとう。申し訳ありませんが、評判スコアが足りないので、今のところupvoteできません。 –