spark 1.6.1 python 3.5.1 构建朴素贝叶斯分类器

Posted

技术标签:

【中文标题】spark 1.6.1 python 3.5.1 构建朴素贝叶斯分类器【英文标题】:spark 1.6.1 python 3.5.1 building naive bayes classifier 【发布时间】:2016-07-26 04:32:00 【问题描述】:

我的问题基于this。

    是否有可能更详细的 cmets/解释代码开始 线tf = HashingTF().transform( training_raw.map(lambda doc: doc["text"], preservesPartitioning=True)) 如何打印混淆矩阵?

    以下错误是什么意思?我该如何解决?模型仍在构建中,我得到了预测

    >>> # Train and check ... model = NaiveBayes.train(training) [Stage 2:=============================> (2 + 2) / 4]16/04/05 18:18:28 WARN BLAS: Failed to load implementation from: com.github.fommil.netlib.NativeSystemBLAS 16/04/05 18:18:28 WARN BLAS: Failed to load implementation from: com.github.fommil.netlib.NativeRefBLAS

    我如何打印新观察的结果。我试过了 失败

    >>> model.predict("love") Traceback (most recent call last): File "<stdin>", line 1, in <module> File "c:\spark-1.6.1-bin-hadoop2.6\spark-1.6.1-bin-hadoop2.6\python\pyspark\mllib\classification.py", line 594, in predict x = _convert_to_vector(x) File "c:\spark-1.6.1-bin-hadoop2.6\spark-1.6.1-bin-hadoop2.6\python\pyspark\mllib\linalg\__init__.py", line 77, in _convert_to_vector raise TypeError("Cannot convert type %s into Vector" % type(l)) TypeError: Cannot convert type <class 'str'> into Vector

【问题讨论】:

你能添加一个来自training_raw的样本吗? 数据在***.com/questions/32231049/… 【参考方案1】:

spark 中的 1.hashingTF 类似于 scikitlearn HashingVectorizer。 training_raw 是文本的 rdd。有关 pySpark 中可用矢量化器的详细说明,请参阅Vectorizers。完整示例见this post

2.BLAS 是基本线性代数子程序库。您可以在 github 上查看此页面以获取潜在的 solution。

3.您正在尝试对字符串(“爱”)使用 model.predict。您必须首先将字符串转换为向量。一个使用密集向量字符串并输出带标签的密集向量的简单示例是

def parseLine(line):
    parts = line.split(',')
    label = float(parts[0])
    features = Vectors.dense([float(x) for x in parts[1].split(' ')])
    return LabeledPoint(label, features)

您可能正在寻找稀疏向量。所以试试 Vectors.sparse。

【讨论】:

对于 2,我现在明白 BLAS 代表什么。但是是否有可能提供摆脱错误的提示?也让我知道如何打印混淆矩阵...谢谢

以上是关于spark 1.6.1 python 3.5.1 构建朴素贝叶斯分类器的主要内容,如果未能解决你的问题,请参考以下文章

spark-1.6.1安装编译&&sparksql操作hive

CentOS7+hadoop2.6.4+spark-1.6.1

spark配置

Spark 中的数组数据集 (1.6.1)

./spark-shell 无法正确启动(spark1.6.1-bin.hadoop2.6 版本)

Spark- Linux下安装Spark