2016-04-06 8 views
1

Meine Frage basiert auf this.funken 1.6.1 python 3.5.1 building naive bayes klassifizierer

  1. Wäre es möglich detailliertere Kommentare/erklären sein Startcode Linie tf = HashingTF().transform(training_raw.map(lambda doc: doc["text"], preservesPartitioning=True))
  2. Wie kann ich die Verwirrung Matrix drucken kann?
  3. Was bedeutet Fehler unten? Wie kann ich es reparieren? Das Modell wird noch gebaut, und ich bekomme die Prognosen

    >>> # 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

  4. Wie ich Ergebnisse für die neue Beobachtung drucken konnte. Ich habe versucht, und gescheitert

    >>> 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

+0

Könnten Sie ein Beispiel aus 'training_raw' hinzufügen? –

+0

die Daten sind bei http://stackoverflow.com/questions/32231049/how-to-use-spark-naive-bayes-classifier-for-text-classification-with-idf – user2543622

Antwort

2

1.hashingTF in Funke ist ähnlich zu dem Scikit-Learn HashingVectorizer. training_raw ist eine Textdatei. Für eine detaillierte Erklärung der verfügbaren Vektorisierer in pySpark siehe Vectorizers. Ein vollständiges Beispiel finden Sie unter this post

2.BLAS ist die Basic Linear Algebra Subprograms-Bibliothek. Sie können diese Seite auf Github für eine mögliche überprüfen.

3.Sie versuchen, model.predict für eine Zeichenfolge ("Liebe") zu verwenden. Sie müssen zuerst die Zeichenfolge in einen Vektor konvertieren. Ein einfaches Beispiel, das eine dichte Vektorkette nimmt und gibt ein dichtes Vektor mit Etikett ist

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) 

Sie sind wahrscheinlich für einen spärlichen Vektor suchen. Also versuchen Sie Vectors.sparse.

+0

für 2, verstehe ich, was BLAS steht jetzt. Aber wäre es möglich, Tipps zu geben, um den Fehler loszuwerden? Lass mich auch wissen, wie man die Konfusionsmatrix druckt ... danke – user2543622

Verwandte Themen