0
サポートベクターマシンは現在、Spark内で複数クラスの分類をサポートしていませんが、Spark pageで説明されています。リニアサポートベクターマシンPyFark APIを使用したマルチクラス分類
サポートベクターマシンで複数のクラスを実装するPySpark APIを使用して、リリース日がありますか、それとも実行する機会はありますか?何か洞察力ありがとうございます。
サポートベクターマシンは現在、Spark内で複数クラスの分類をサポートしていませんが、Spark pageで説明されています。リニアサポートベクターマシンPyFark APIを使用したマルチクラス分類
サポートベクターマシンで複数のクラスを実装するPySpark APIを使用して、リリース日がありますか、それとも実行する機会はありますか?何か洞察力ありがとうございます。
実際には、任意のバイナリクラシファイアと1対vs-rest戦略を使用してマルチクラス分類を実行できます。 mllib
は1つを提供しません(ml
に1つあります)が、あなた自身で簡単に構築できます。
def model_for_class(c, rdd):
def adjust_label(lp):
return LabeledPoint(1 if lp.label == c else 0, lp.features)
model = SVMWithSGD.train(rdd.map(adjust_label))
model.clearThreshold()
return model
models = [model_for_class(c, data) for c in classes]
と予測のためにそれを使用します:側では
[(x.label, np.argmax([model.predict(x.features) for model in models]))
for x in xs]
## [(0.0, 0), (1.0, 1), (0.0, 0), (5.0, 5), (2.0, 2)]
あなたはそれ以上を期待することはできません注意してくださいと仮定すると、データは、私たちは、クラスごとに別々のモデルを訓練することができ、この
import numpy as np
np.random.seed(323)
classes = [0, 1, 2, 3, 4, 5]
def make_point(classes):
label = np.random.choice(classes)
features = np.random.random(len(classes))
features[label] += 10
return LabeledPoint(label, features)
data = sc.parallelize([make_point(classes) for _ in range(1000)])
xs = data.take(5)
のように見えます開発はpyspark.mllib
になりました。これは非推奨になっているため、ml
です。