問題タブ [feature-engineering]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
97 参照

python - 集約されたデータの主要な DCT 係数から特徴を作成する最も効率的な方法 - PySpark

現在、いくつかの機器のさまざまなセンサー読み取り値の時系列データで構成されるデータセットの機能を作成しています。これは、おそらく同じ機器の障害イベントに関連しています。このデータの基本構造は、機器 ID、タイムスタンプ、およびセンサーの読み取り値を組み合わせた一種のテーブルを持っていることです。

アイデアは、サイクルに基づいてデータを集約して、それらに対応するシーケンス (および対応する機能) を作成することです。生データの量は膨大で、spark を使用する必要がありますが、集計後の結果のデータセットは、Pandas DF に保存して keras でモデルを構築するために使用するのに十分小さいです。とりわけ、1 つのアイデアは、いくつかのセンサーの主要な DCT コンポーネントを収集して、それらを機能として使用することです。これを行うために、(特に) 次の集計を行います。

これにより、各機器のサイクルごとに、センサーの時系列が配列として個別に得られます。ここでのアイデアは、DCT を実行し、主要なn係数のみを保持し、これらを新しい機能列として個別に追加することです。これを行う方法を思いつきましたが、パフォーマンスがひどいようです。そのため、助けを求めています。

残念ながら、配列で Pyspark の DCT を使用することはできないため (ドキュメントによると、機能は DenseVector タイプでなければなりません)、収集した配列を DenseVector に変換する必要があります。効率的な方法はないように思われるので、UDF を使用してこれを行います。

次のステップは、次のようなものを使用して、DCT 自体を実行することです。

ここで、私が落とし穴を恐れるポイントに到達します。DCT ベクトルをある程度の係数に切り詰める必要があります。これらの係数は、後で Pandas DF/Numpy 配列に渡すために個別の列に分解されます。

UDF を使用することは、パフォーマンスの面で良くないのではないかと心配しています。とにかく、DenseVector は配列型として表されません。したがって、これは機能しません:

そこで私が最後にしたことは、適切な関数を上記の DF の RDD バージョンにマップし、それをデータフレームとして返すことでした。これは私が今使っているものです:

問題は、これの実行が非常に遅いように見えることです (おそらく、これらすべての手順を実行する JVM と python の間のシリアライゼーションと変換が原因です)。これはほとんど法外です。私は主に、より高速な代替手段を探しています。これに関する任意の助けをいただければ幸いです。

0 投票する
1 に答える
335 参照

machine-learning - 数値特徴をビニングした後に何をすべきか?

ビニングを行った後、何をすべきか知りたいです。たとえば、特徴の 1 つは年齢です。したがって、私のデータは [11, 12, 35, 26] です。

次に、サイズ 10 のビニングを適用します。

ビン、名前

[0, 10) --> 1

[10, 20) --> 2

[20, 30) -->3

[30, 40) --> 4

その後、私のデータは [2, 2, 4, 3] になります。ここで、このデータを線形回帰モードにしたいとします。[2, 2, 4, 3] を数値的特徴として扱うべきですか? または、最初にワンホット エンコーディングを実行してからモデルにフィードするなど、それらをカテゴリ機能として扱う必要がありますか?

0 投票する
1 に答える
531 参照

scala - 列に含まれる値に従ってspark Dataframeをフィルタリングするにはどうすればよいですか?

データセットには、一部の文字列列に None または NA 値があります。データセットに含まれるこれらの null 値の数を数えたいですか? それに応じて、欠損値に使用するアプローチを決定します。

or 式を使用して、各列のデータフレームを効率的にフィルタリングする非常に効率的な方法を試しました。より効率的できちんとした方法でそれらをフィルタリングしたいと思います。rdd に変換せずに実行する方がよいでしょうが、データフレームを使用してこの種のフィルタリング rdd の方法を実行できない場合も許容されます。

このスレッドSpark SQL フィルターの複数のフィールドが私の質問に非常に似ていることがわかりましたが、列が非常に多いため、これをよりきちんとしたエレガントな方法で記述したいと考えています

どの列に null 値がいくつあるかを確認したい。

0 投票する
1 に答える
472 参照

python - df.groupby('A').agg('min') はどのように機能ツールに変換されますか?

この単純なコード スニペットがあるとします。データフレームをグループ化、集約、およびマージします。


パンダの使用:


データ

DF:

グループと集計

df_結果:

マージ

df_new:

featuretools を使用した試み:


機能マトリックス:

Pandas での操作はどのように featuretools に変換されますか (できれば別のテーブルを追加せずに)?

私が featuretools を試しても正しい出力が得られませんでしたが、使用したプロセスはある程度正しいと思います。

0 投票する
2 に答える
208 参照

featuretools - FeatureTools TypeError: unhashable type: 'set'

I'm trying this code for featuretools:

But I had this error

I also tried the simplest code for deep feature synthesis (dfs) as shown below, but it still encountered the same error

features, feature_names = ft.dfs(entityset = es, target_entity = 'demo')

I'm not really sure why I encountered this error, any help or recommendations on how to go about from here is deeply appreciated. Thanks in advance for your help!