1

X2 つのカテゴリ機能と 41 の数値機能を持つデータ フレームがあります。合計X43 の機能があります。

RandomForestここで、カテゴリ特徴を数値レベルに変換して、 Classifierで使用できるようにしたいと思います。

私は次のことを行いました。どこで、カテゴリ機能の場所を示します0:1

import pandas as pd

X = pd.read_csv("train.csv")

F1 = pd.get_dummies(X.iloc[:, 0])

F2 = pd.get_dummies(X.iloc[:, 1])

次に、これら 2 つのデータ フレームを連結します。

Xnew = pd.concat([F1, F2, X.ix[:, 2:]])

現在、Xnew63 の機能があります ( F118 のF2機能があり、4 つの機能があり、残りの 41 は からのものですX)

これは正しいです?同じことを行うより良い方法はありますか?共線性を避けるためにF1、最初の列を削除する必要がありますか?F2

4

1 に答える 1

0

F1には 18のレベル(機能ではない) があり、F2 には 4 つのレベルがあるため、結果は正しいように見えます。

共線性を避けるために、(F1 と F2 ごとに) 列の 1 つを削除することをお勧めします。必ずしも最初の列ではありません。通常、最も一般的なレベルの列を削除します。

なぜ最も一般的なレベルのものなのですか?機能の重要性について考えてみましょう。1 つの列を削除すると、その重要性を推定する機会がなくなります。このレベル (ドロップしたレベル) は、「ベース レベル」のようなものです。基本レベルからの逸脱のみが、重要または重要でないとしてマークできます。

于 2016-09-06T14:31:42.430 に答える