1.直接上官方代码,调整过的,方可使用 package com.test import org.apache.spark.{SparkConf, SparkContext} import org.apache.spark.mllib.classification.{LogisticRegressionModel, LogisticRegressionWithLBFGS} import org.apache.spark.mllib.evaluation.MulticlassMetrics impo…
  逻辑斯蒂回归 一.概念 逻辑斯蒂回归(logistic regression)是统计学习中的经典分类方法,属于对数线性模型.logistic回归的因变量可以是二分类的,也可以是多分类的.logistic回归的因变量可以是二分非线性差分方程类的,也可以是多分类的,但是二分类的更为常用,也更加容易解释.所以实际中最为常用的就是二分类的logistic回归. 二.logistic分布 设X是连续随机变量,X服从逻辑斯蒂分布是指X具有下列分布函数和密度函数:   分布函数和密度函数 式中,μ为位置参…
转载请注明:http://blog.csdn.net/xinzhangyanxiang/article/details/9113681 最近在看Ng的机器学习公开课,Ng的讲法循循善诱,感觉提高了不少.该系列视频共20个,每看完一个视频,我都要记录一些笔记,包括公式的推导,讲解时候的例子等.按照Ng的说法,公式要自己推理一遍才能理解的通透,我觉得自己能够总结出来,发到博客上,也能达到这个效果,希望有兴趣的同学要循序渐进,理解完一个算法再开始学另外一个算法,每个算法总结一遍,虽然看起来很慢,但却真…
import org.apache.log4j.{Level, Logger} import org.apache.spark.ml.classification.LogisticRegression import org.apache.spark.ml.linalg.Vectors import org.apache.spark.sql.SparkSession /** * 逻辑回归 * Created by zhen on 2018/11/20. */ object LogisticRegr…
        前一节从宏观角度给大家介绍了Spark ML的设计框架(链接:http://www.cnblogs.com/jicanghai/p/8570805.html),本节我们将介绍,Spark ML中,机器学习问题从单机到分布式转换的核心方法.         单机时代,如果我们想解决一个机器学习的优化问题,最重要的就是根据训练数据,计算损失函数和梯度.由于是单机环境,什么都好说,只要公式推导没错,浮点数计算溢出问题解决好,就好了.但是,当我们的训练数据量足够大,大到单机根本存储不下的…
Machine and statistical learning wizards are becoming more eager to perform analysis with Spark MLlibrary if this is only possible. It’s trendy, posh, spicy and gives the feeling of doing state of the art machine learning and being up to date with th…
1. Naive Bayes算法 朴素贝叶斯算法算是生成模型中一个最经典的分类算法之一了,常用的有Bernoulli和Multinomial两种.在文本分类上经常会用到这两种方法.在词袋模型中,对于一篇文档$d$中出现的词$w_0,w_1,...,w_n$, 这篇文章被分类为$c$的概率为$$p(c|w_0,w_1,...,w_n) = \frac{p(c,w_0,w_1,...,w_n)}{p(w_0,w_1,...,w_n)} = \frac{p(w_0,w_1,...,w_n|c)*p(c…
        之前我们讲过,在Spark ML中所有的机器学习模型都是以参数作为划分的,树相关的参数定义在treeParams.scala这个文件中,这里构建一个关于树的体系结构.首先,以DecisionTreeParams作为起始,这里存储了跟树相关的最基础的参数,注意它扩展自PredictorParams.接下来为了区分分类器和回归器,提出了TreeClassifierParams和TreeRegressorParams,两者都直接扩展自Params,分别定义了树相关的分类器和回归器所需要…
准备条件 我用的Eclipse版本 Eclipse Java EE IDE for Web Developers. Version: Luna Release (4.4.0) 我用的是Eclipse for Java EE, 这个和Eclipse 是一样的 最好是用高版本的Eclipse,版本太低的话不支持Scala-IDE 1.安装Scala-IDE 在Eclipse中开发Scala程序需要有scala插件,我们现在安装scala插件 下面是安装过程截图 Scala IDE用于提供scala语…
Transformer: 是一个抽象类包含特征转换器, 和最终的学习模型, 需要实现transformer方法 通常transformer为一个RDD增加若干列, 最终转化成另一个RDD, 1. 特征转换器通常处理一个dataset, 把其中一列数据转化成一列新的数据. 并且把新的数据列添加到dataset后面,产生一个新的dataset输出. 2. 一个学习模型转换器用来处理一个数据集, 读取包含特征向量的那一列数据, 为每一个特征向量预测一个结果标签, 把预测结果标签作为一个新的数据列里添加…