Learning Journey2.3 - Naive Bayes 7.0(Test)

第二周DAY3

今日思考

忧郁的心啊,你为何不肯安息,
是什么刺得你双脚流血地奔逃,
你究竟期待着什么? - 尼采

《查拉图斯特拉如是说》—— 列入想读清单。

多数之弱者为少数之强者所压迫,

少数之优者为多数之劣者所牵制?

Naive Bayes 7.0(Test)

新代码,这是在测试,输入一些词汇,来判断是abusive or not abusive。

def classifyNB(vec2Classify,p0Vec,p1Vec,pClass1):
    p1 = sum(vec2Classify * p1Vec) + log(pClass1)
    p0 = sum(vec2Classify * p0Vec) + log(1.0 - pClass1)
    if p1 > p0:
        return 1
    else:
        return 0


def testingNB():
    listOPosts,listClasses = loadDataSet()
    myVocabList = createVocabList(listOPosts)
    trainMat=[]
    for postinDoc in listOPosts:
        trainMat.append(setOfWords2Vec(myVocabList, postinDoc))
    p0V,p1V,pAb = trainNB0(array(trainMat),array(listClasses))
    testEntry = ['love', 'my', 'dalmation']
    thisDoc = array(setOfWords2Vec(myVocabList, testEntry))
    print testEntry,'classified as: ',classifyNB(thisDoc,p0V,p1V,pAb)
    testEntry = ['stupid', 'garbage']
    thisDoc = array(setOfWords2Vec(myVocabList, testEntry))
    print testEntry,'classified as: ',classifyNB(thisDoc,p0V,p1V,pAb)

实验结果:
在这里插入图片描述
1 代表这些词汇是带有侮辱性的,而0,则不带有侮辱性。
代码的逻辑,明天做个流程图,好好理解一下,加油!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这里是一个 RDD-based API 的简单 Scala 代码示例,展示如何使用 Apache Spark 中的 MLlib 库来训练一个朴素贝叶斯分类器并输出结果: ```scala import org.apache.spark.mllib.classification.{NaiveBayes, NaiveBayesModel} import org.apache.spark.mllib.util.MLUtils import org.apache.spark.{SparkConf, SparkContext} // 创建 SparkConf 和 SparkContext val conf = new SparkConf().setAppName("NaiveBayesExample") val sc = new SparkContext(conf) // 读取数据集 val data = MLUtils.loadLibSVMFile(sc, "data/mllib/sample_libsvm_data.txt") // 划分数据集为训练集和测试集 val Array(trainingData, testData) = data.randomSplit(Array(0.7, 0.3), seed = 1234L) // 训练朴素贝叶斯分类器 val model = NaiveBayes.train(trainingData, lambda = 1.0, modelType = "multinomial") // 在测试集上进行预测 val predictions = testData.map { point => val prediction = model.predict(point.features) (prediction, point.label) } // 计算模型准确率 val accuracy = 1.0 * predictions.filter(r => r._1 == r._2).count() / testData.count() println(s"Test set accuracy = $accuracy") // 输出预测结果 predictions.take(10).foreach(println) // 保存模型 model.save(sc, "myModelPath") // 加载模型 val sameModel = NaiveBayesModel.load(sc, "myModelPath") ``` 你可以将你的数据集替换文中的数据集路径,然后运行代码即可得到训练好的模型和预测结果。需要注意的是,在 RDD-based API 中,我们需要显式地调用 `predict` 方法来进行预测。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值