2016-04-21 18 views
-2

こんにちは私はナイーブベイズモデルを使って病気の分類に取り組んでいます。 症状とともに症状を持つCSVファイルがあります。 CSV形式: 症状-1症状-2症状-3病気 naiveベイズモデルにこのCSVを提供し、症状に基づいて病気を分類する方法 CSVを読み、NaïveBayesモデルに提供する標準コードはありますかクラスを実行する 私はスパークマシン学習ライブラリを使用してこれを行う。ナイーブベイズ分類器にCSV入力を提供する方法

CODE

+0

から変形例であり、あなたは何を試してみましたか? csvの読み方の例はたくさんあります。あなたはどこにいらっしゃいますか? –

+0

https://drive.google.com/open?id=0ByqOTgDAvFWCdHVxcmxJRzZicm8 –

+1

いいえ、コードを説明してください。私は誰もがzipファイルをダウンロードし、それを介して動作することを疑う。 –

答えて

1

これは

import org.apache.spark.mllib.classification.{NaiveBayes, NaiveBayesModel} 
import org.apache.spark.mllib.linalg.Vectors 
import org.apache.spark.mllib.regression.LabeledPoint 

val data = sc.textFile("your csv path") 
val parsedData = data.map { line => 
    val parts = line.split(',') 
    // The labeled point is LabeledPoint(Disease,(Symptom 1,2,3)) // Assuming that all of them are numeric 
    LabeledPoint(parts(3).toDouble,Vectors.dense(parts(0).toDouble,parts(1).toDouble,parts(2).toDouble)) 
} 

// Split data into training (60%) and test (40%). 
val splits = parsedData.randomSplit(Array(0.6, 0.4), seed = 11L) 
val training = splits(0) 
val test = splits(1) 

val model = NaiveBayes.train(training, lambda = 1.0, modelType = "multinomial") 

val predictionAndLabel = test.map(p => (model.predict(p.features), p.label)) 
val accuracy = 1.0 * predictionAndLabel.filter(x => x._1 == x._2).count()/test.count() 

// Save and load model 
model.save(sc, "target/tmp/naiveBayesModel") 
val sameModel = NaiveBayesModel.load(sc, "target/tmp/naiveBayesModel") 
+0

を参照してください。少し努力してください!どんな誤り、どこで...我々はテレパシーではない。 –

+1

@SandeepDvsのエラーコードを実行しようとしているときに、http://stackoverflow.com/help/mcve –

+0

Error:(25,45)value denseは、オブジェクトscala.collection.immutable.Vectorのメンバーではありません。 LabeledPoint(parts(3).toDouble、Vector.dense(parts(0).toDouble、parts(1).toDouble 、parts(2).toDouble)) ^ –

関連する問題