0
スパークデータフレーム内の特定の列を無視して列車の異なる回帰モデルをどのように実行しますか?列の値ごとに別々のモデルを訓練する方法は?
1つのSpark DFで、機能とラベルが付いた2つの製品があるとします。 製品のIDは、seprateカラムにあります。
それぞれの製品について回帰分析を実行したいと思います。
w = Window().partitionBy("id")
F.sum(column).over(w)
例えばデータ
sdf = spark.createDataFrame(
[("a", 1.0, 2.0, 3.0), ("a", 4.0, 1.0, 5.0), ("b", 2.0, 1.0, 0.0), ("b", 4.0, 0.0, 1.0)],
["id", "y", "x1", "x2"])
id "a"と "b"の別のモデルを実行したいと思います。
なぜ 'filter'を使用して条件に基づいてDataFrameを分割し、2つのDataFramesを別々に使用しないのですか? –
こんにちは、それは可能な解決策の1つです。しかし、私は70,000のIDを持っているので、私は各IDのforループを実行したくありません。そこにグループをする方法はありますか? –
あなたは 'groupBy'、' collect_list'または 'collect_set'を行い、コレクションごとにトレーニングをすることができますが、それはすぐに利用できず、ユーザー定義集計関数(UDAF)を書く必要があります。 –