spark/MLlib分类与回归、聚类
来源:互联网 发布:阿里云新用户邀请码 编辑:程序博客网 时间:2024/05/16 05:22
二分分类: SVM、逻辑回归、决策树、贝叶斯
多类分类:决策树、贝叶斯
回归:线性最小二乘法
聚类:kmeans、层次法(CURE、CHAMELEON)、网格算法(STING、WaveCluster)
与分类不同,分类是示例式学习,要求分类前指出各个类别,并断言每个元素映射到一个类别,儿聚类是观察式学习,在聚类前可以不知道类别甚至不给定类别数量,是无监督学习的一种。
二分分类
线性SVM
MLlib支持两个线性方法:线性支持向量机SVM和逻辑回归。在MLlib中,训练标签用1表示积极,用0表示消极。
线性SVM是大规模分类任务的标准方法。
L ( w ; x , y ) = max { 0 , 1 − y w T x }
线性SVM算法输出一个SVM模型,对于一个新数据x,模型通过wTx进行预测。
逻辑回归
L ( w ; x , y ) = log ( 1 + exp ( − y w T x ) )
加载测试数据
val data=MLUtils.loadLibSVMFile(sc,"svm_data.txt")
将测试数据划分为training和test (train,test)
val splits = data.randomSplit(Array(0.6,0.4) , seed=11L)
val training=splits(0).cache()
val test=splits(1)
训练模型
val numIterations =100
val model=SVMWithSGD.train(training,numIterations)
清除默认阈值
model.clearThreshold()
计算新模型在测试数据集的效果
val scoreAndLabels = test.map{ point =>
val score= model.predict(point.features)
(score,point.label)
}
得到评估指标
val metrics=new BinaryClassificationMetrics(scoreAndLabels)
val auROC=metrics.areaUnderROC()
SVMWithSGD.train()训练方法使用默认参数。如需配置算法,
val svmAlg=new SVMWithSGD()
svmAlg.optimizer.setNumIterations(200) .setRegParam(0.1).setUpdater(new L1Updater)
val modelL1 =svmAlg.run(training)
其他MLlib算法也支持这种方式自定义。
Kmeans
从文件加载数据
val data=sc.textFile("hdfs://")
使用spark util包中的generateKMeansRDD生成数据集,生成多个中心的混合高斯分布
val data=KMeansDataGenerator.generateKMeansRDD(sc,pointnumber,numClusters,k,r)
转换为RDD
val parseData=data.map( s=> Vectors.dense(s.split(' ').map(_.toDouble)))
生成模型
val model=KMeans.train(parseData , numClusters,numIterations,runs)
数据中心点
model.clusterCenters
预测新数据点
model.predict(Vectors.dense("1.0 2.0 3.0".split(' ').map(_.toDouble)))
数据方差和
model.computeCost(parseData)
kmeans算法的结果好坏依赖于对初始聚类中心的选择,容易陷入局部最优解,对异常数据较为敏感,只能处理数值属性的数据,聚类结构可能不平衡。
0 0
- spark/MLlib分类与回归、聚类
- Spark MLlib 1.6 -- 分类和回归篇
- spark MLlib之分类和回归
- spark mllib之分类和回归
- 【Spark Mllib】逻辑回归——垃圾邮件分类器与maven构建独立项目
- Spark MLlib学习(二)——分类和回归
- spark mllib源码分析之二分类逻辑回归evaluation
- spark厦大-----逻辑斯蒂回归分类器--spark.mllib
- spark mllib实现线性回归
- Spark MLlib logistic回归案例
- spark&pthon MLlib逻辑回归
- Spark MLlib之线性回归
- 使用Spark MLlib的逻辑回归(LogisticRegression)进行用户分类预测识别
- Spark机器学习之分类与回归
- spark厦大----分类与回归
- Spark MLlib之线性回归源码分析
- Spark MLlib Linear Regression线性回归算法
- Spark MLlib Logistic Regression逻辑回归算法
- 黑马程序员-Foundation框架之NSArray类
- Linux上实现canny边缘检测
- 搭建docker内网私服(docker-registry with nginx&ssl on centos)
- PAT (Advanced Level) 1008. Elevator (20) 电梯总上升和下降次数
- window7运行powershell
- spark/MLlib分类与回归、聚类
- #28 Implement strStr()
- Splay树(插入、删除、区间最大字段和)—— SPOJ - GSS6 Can you answer these queries VI
- poj 2010 优先队列+贪心
- 集群搭建时候遇到的一个问题
- 事件默认行为
- NYOJ324 猴子吃桃问题
- Hibernate 与mybatis的区别
- Mongodb Sharding 术语