首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >基于PySpark的线性支持向量机多类分类

基于PySpark的线性支持向量机多类分类
EN

Stack Overflow用户
提问于 2016-09-22 13:53:22
回答 1查看 1.7K关注 0票数 0

支持向量机目前还不支持Spark中的多类分类,但在未来会像Spark page上描述的那样。

是否有任何发布日期或任何机会运行它与支持向量机实现多类的PySpark应用程序接口?感谢你的见解。

EN

回答 1

Stack Overflow用户

发布于 2016-09-22 23:21:17

在实践中,您可以使用任意的二元分类器和一对一策略来执行多类分类。mllib没有提供(在ml中有一个),但是您可以很容易地构建自己的。假设数据如下所示

代码语言:javascript
复制
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)

我们可以为每个类训练单独的模型:

代码语言:javascript
复制
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]

并将其用于预测:

代码语言:javascript
复制
[(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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39631208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档