0
支持向量機當前還不支持Spark中的多類分類,但將來會如Spark page中所述。線性支持向量機多類分類與PySpark API
是否有任何發佈日期或任何機會使用支持向量機實現多類的PySpark API運行?感謝您的任何見解。
支持向量機當前還不支持Spark中的多類分類,但將來會如Spark page中所述。線性支持向量機多類分類與PySpark API
是否有任何發佈日期或任何機會使用支持向量機實現多類的PySpark API運行?感謝您的任何見解。
在實踐中,您可以使用任意二進制分類器和一個vs-rest策略執行多類分類。 mllib
不提供一個(在ml
有一個),但你可以輕鬆地建立自己的。假設數據是這樣的
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)
,我們可以訓練單獨的模型爲每個類:
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)]
在側面說明,你不能指望任何進一步的pyspark.mllib
的開發項目,因爲它已被棄用,轉而使用ml
。