Sparkでonehotencoderを使用すると、4番目の列のように結果が得られます。これは疎なベクトルです。Pandasでonehotencoderのように動作するようにSparkのonehotencoderを作成するには?
// +---+--------+-------------+-------------+
// | id|category|categoryIndex| categoryVec|
// +---+--------+-------------+-------------+
// | 0| a| 0.0|(3,[0],[1.0])|
// | 1| b| 2.0|(3,[2],[1.0])|
// | 2| c| 1.0|(3,[1],[1.0])|
// | 3| NA| 3.0| (3,[],[])|
// | 4| a| 0.0|(3,[0],[1.0])|
// | 5| c| 1.0|(3,[1],[1.0])|
// +---+--------+-------------+-------------+
しかし、私が望むのは、パンダでの動作と同じように、カテゴリに対して3つの列を生成することです。
>>> import pandas as pd
>>> s = pd.Series(list('abca'))
>>> pd.get_dummies(s)
a b c
0 1 0 0
1 0 1 0
2 0 0 1
3 1 0 0
なぜこれをやりたいですか?これにより、データが非常に大きくなり、メモリが非効率になります。 –
データセットに大きな値を持たないため、大きなデータを作成することはありません。結果フィーチャは122(122列)になります。私はそれをしたいので、TensorFlowで処理する方が簡単です。私はニューラルネットワークへの入力としてデータを供給したい。 –