日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

sparkmllib scala NaiveBayes Demo

發(fā)布時間:2025/3/15 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sparkmllib scala NaiveBayes Demo 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

定義?

貝葉斯方法

貝葉斯方法是以貝葉斯原理為基礎(chǔ),使用概率統(tǒng)計的知識對樣本數(shù)據(jù)集進行分類。由于其有著堅實的數(shù)學(xué)基礎(chǔ),貝葉斯分類算法的誤判率是很低的。貝葉斯方法的特點是結(jié)合先驗概率和后驗概率,即避免了只使用先驗概率的主觀偏見,也避免了單獨使用樣本信息的過擬合現(xiàn)象。貝葉斯分類算法在數(shù)據(jù)集較大的情況下表現(xiàn)出較高的準確率,同時算法本身也比較簡單。

樸素貝葉斯算法

樸素貝葉斯算法(Naive Bayesian algorithm) 是應(yīng)用最為廣泛的分類算法之一。

樸素貝葉斯方法是在貝葉斯算法的基礎(chǔ)上進行了相應(yīng)的簡化,即假定給定目標值時屬性之間相互條件獨立。也就是說沒有哪個屬性變量對于決策結(jié)果來說占有著較大的比重,也沒有哪個屬性變量對于決策結(jié)果占有著較小的比重。雖然這個簡化方式在一定程度上降低了貝葉斯分類算法的分類效果,但是在實際的應(yīng)用場景中,極大地簡化了貝葉斯方法的復(fù)雜性。

?優(yōu)缺點

優(yōu)點

樸素貝葉斯算法假設(shè)了數(shù)據(jù)集屬性之間是相互獨立的,因此算法的邏輯性十分簡單,并且算法較為穩(wěn)定,當數(shù)據(jù)呈現(xiàn)不同的特點時,樸素貝葉斯的分類性能不會有太大的差異。換句話說就是樸素貝葉斯算法的健壯性比較好,對于不同類型的數(shù)據(jù)集不會呈現(xiàn)出太大的差異性。當數(shù)據(jù)集屬性之間的關(guān)系相對比較獨立時,樸素貝葉斯分類算法會有較好的效果。?

缺點

屬性獨立性的條件同時也是樸素貝葉斯分類器的不足之處。數(shù)據(jù)集屬性的獨立性在很多情況下是很難滿足的,因為數(shù)據(jù)集的屬性之間往往都存在著相互關(guān)聯(lián),如果在分類過程中出現(xiàn)這種問題,會導(dǎo)致分類的效果大大降低。

數(shù)據(jù)集?

0,0 0 0 0 0,0 0 0 1 1,1 0 0 0 1,2 1 0 0 1,2 2 1 0 0,2 2 1 1 1,1 2 1 1 0,0 1 0 0 1,0 2 1 0 1,2 1 1 0 1,0 1 1 1 1,1 1 0 1 1,1 0 1 0 0,2 1 0 1

?demo

object NaiveBayesdemo {def main(args: Array[String]): Unit = {val conf = new SparkConf().setAppName("NaiveBayes").setMaster("local[2]")val sc = new SparkContext(conf)val data = sc.textFile("demo.txt")val parsedData = data.map{ line =>val parts = line.split(',')LabeledPoint(parts(0).toDouble, Vectors.dense(parts(1).split(' ').map(_.toDouble)))}val Array(traning,test) = parsedData.randomSplit(Array(0.6, 0.4), seed = 11L)val model = NaiveBayes.train(traning,lambda = 1.0,modelType = "multinomial")val predictionAndLabel = test.map(p => (model.predict(p.features),p.label))val tuples = predictionAndLabel.take(20)for (i <- 0 to tuples.length - 1){println(tuples(i)._1 + "\t" + tuples(i)._2)}println("Predictionof (0.0, 2.0, 0.0, 1.0):"+model.predict(Vectors.dense(0.0,2.0,0.0,1.0)))} }

?

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的sparkmllib scala NaiveBayes Demo的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。