Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于pysparkapi的线性支持向量机多类分类_Python_Apache Spark_Pyspark_Svm_Apache Spark Mllib - Fatal编程技术网

Python 基于pysparkapi的线性支持向量机多类分类

Python 基于pysparkapi的线性支持向量机多类分类,python,apache-spark,pyspark,svm,apache-spark-mllib,Python,Apache Spark,Pyspark,Svm,Apache Spark Mllib,支持向量机目前还不支持Spark中的多类分类,但将来将如Spark中所述 是否有发布日期或任何机会使用PySpark API运行它,该API使用支持向量机实现多类?感谢您提供的任何见解。实际上,您可以使用任意二进制分类器和一对一策略执行多类分类mllib不提供一个(在ml中有一个),但您可以轻松构建自己的库。假设数据是这样的 import numpy as np np.random.seed(323) classes = [0, 1, 2, 3, 4, 5] def make_point(c

支持向量机目前还不支持Spark中的多类分类,但将来将如Spark中所述


是否有发布日期或任何机会使用PySpark API运行它,该API使用支持向量机实现多类?感谢您提供的任何见解。

实际上,您可以使用任意二进制分类器和一对一策略执行多类分类
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

实际上,您可以使用任意二进制分类器和一对一策略执行多类分类
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