spark mllib和ml类里面的区别
来源:互联网 发布:中医古籍数据库公司 编辑:程序博客网 时间:2024/05/23 23:09
mllib是老的api,里面的模型都是基于RDD的,模型使用的时候api也是有变化的(model这里是naiveBayes),
(1:在模型训练的时候是naiveBayes.run(data: RDD[LabeledPoint])来训练的,run之后的返回值是一个NaiveBayesModel对象,就可以使用NaiveBayesModel.predict(testData: RDD[Vector]): RDD[Double] 里面不仅可以传入一个RDD[Vector] ,里面还可以传入单个Vector,得到单个预测值,然后就可以调用save来进行保存了,具体的可以看官方文档API
(2:模型使用可以参考(1,模型的读取是使用load方法去读的
ml是新的API,ml包里面的模型是基于dataframe操作的
(1:在模型训练的时候是使用naiveBayes.fit(dataset: Dataset[]): NaiveBayesModel来训练模型的,返回值是一个naiveBayesModel,可以使用naiveBayesModel.transform(dataset: Dataset[]): DataFrame,进行模型的检验,然后再通过其他的方法来评估这个模型,
(2:模型的使用可以参考(1: 是使用transform来进行预测的,取预测值可以使用select来取值,使用select的时候可以使用“$”label””的形式来取值
训练的时候是使用的NaiveBayes,使用的时候使用naiveBayesModel
ml包里的模型训练代码请参考ml包里面的模型训练代码 ml包里面的模型的使用
mllib代码的使用会在稍后贴上:
mllib的建模使用代码:
package studySparkimport org.apache.spark.SparkConfimport org.apache.spark.SparkContextimport org.apache.spark.mllib.feature.HashingTFimport org.apache.spark.mllib.regression.LabeledPointimport org.apache.spark.mllib.classification.LogisticRegressionWithSGDclass EmailClassification {}object EmailClassification{ def main(args: Array[String]): Unit = { val sc = getSparkCont() //每一行都以一封邮件 val spam = sc.textFile("spam.txt"); val nomal = sc.textFile("normal.txt") //创建一个hashingTF实例来吧邮件文本映射为包含10000个特征的向量 val tf = new HashingTF(10000) //把邮件都被分割为单词,每个单词都被映射成一个向量 val spamFeatures = spam.map { email => tf.transform(email.split(" ")) } val nomalFeatures = nomal.map { email => tf.transform(email.split(" ")) } //创建LabelPoint 的数据集 val positiveExamples = spamFeatures.map { feature => LabeledPoint(1,feature) } val negativeExamples = nomalFeatures.map { feature => LabeledPoint(1,feature) } val trainingData = positiveExamples.union(negativeExamples) //使用SGD算法运行逻辑回归 返回的类型是LogisticRegression 但是这个模型是有save,但是没有load方法,我还在思考,读者如果有什么意见或者看法可以下面评论的 val model = new LogisticRegressionWithSGD().run(trainingData) //创建一个邮件向量进行测试 val posTest = tf.transform("cheap stuff by sending money to ....".split(" ")) val prediction = model.predict(posTest) println(prediction) } def getSparkCont():SparkContext={ val conf = new SparkConf().setAppName("email").setMaster("local[4]") val sc = new SparkContext(conf) return sc }}
- spark mllib和ml类里面的区别
- Spark中ml和mllib的区别
- 请别再问我Spark的MLlib和ML库的区别
- spark ml和mllib库的说明
- 基于spark Mllib(ML)聚类实战
- SPARK模型实例:两种方法实现随机森林模型(MLlib和ML)
- Spark中ml和mllib库特征处理例子及其文档总结
- DM和ML的区别
- spark MLlib、ML机器学习之Logistic回归
- Spark的Ml pipeline
- Spark-1.4.1+MLlib的安装和搭建
- spark mllib的优缺点分析
- spark mllib 的数据预处理
- Spark MLlib聚类代码
- Spark MLlib
- spark MLlib
- Spark MLLib
- Spark MLlib
- 关于看算法导论不懂的时候的思考
- TCP、UDP、IP 协议分析
- HDU 3401 Trade 【DP+单调队列优化】
- 当你在试衣间试衣服,请你务必想起wait()与notify()
- 算法学习---关于快速排序,数据呈现基本有序和完全无序时候导致的时间复杂度增n^2的解决方案
- spark mllib和ml类里面的区别
- MySQL数据库与网页进行数据传递(上)
- first-child first-of-type last-child last-of-type 伪类选择器总结
- 【数据结构】-线性表-链表 熟练度max=2
- MySQL之——重连,连接丢失:The last packet successfully received from the serve
- js addEventListener和attachEvent函数中的this的指向问题及解决方法
- 如何查找bug
- mysql安装过程中报错【Can t connect to mysql server on localhost (10061) 】
- 382. Linked List Random Node**