一.公式 卡方检验的基本公式,也就是χ2的计算公式,即观察值和理论值之间的偏差   卡方检验公式 其中:A 为观察值,E为理论值,k为观察值的个数,最后一个式子实际上就是具体计算的方法了 n 为总的频数,p为理论频率,那么n*p自然就是理论频数(理论值) 二.相关概念 卡方分布:可以看出当观察值和理论值十分接近的时候,也就是我们做的假设是正确的时候,χ2的值就越趋近于0,也就是说我们计算的偏差越小,那么假设值就越可能是对的,反之偏差值越大,假设值就越不准确.那么到底多大才算不准确,有没有个衡…
特征选择(Feature Selection)指的是在特征向量中选择出那些“优秀”的特征,组成新的.更“精简”的特征向量的过程.它在高维数据分析中十分常用,可以剔除掉“冗余”和“无关”的特征,提升学习器的性能. 特征选择方法和分类方法一样,也主要分为有监督(Supervised)和无监督(Unsupervised)两种,卡方选择则是统计学上常用的一种有监督特征选择方法,它通过对特征和真实标签之间进行卡方检验,来判断该特征和真实标签的关联程度,进而确定是否对其进行选择. package Spark…
  一.什么是机器学习 机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论.统计学.逼近论.凸分析.算法复杂度理论等多门学科.专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能.它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳.综合而不是演绎.一种经常引用的英文定义是: A computer program is said to learn from exp…
  给定一个数据集,数据分析师一般会先观察一下数据集的基本情况,称之为汇总统计或者概要性统计.一般的概要性统计用于概括一系列观测值,包括位置或集中趋势(比如算术平均值.中位数.众数和四分位均值),展型(比如四分位间距.绝对偏差和绝对距离偏差.各阶矩等),统计离差,分布的形状,依赖性等.除此之外,spark.mllib库也提供了一些其他的基本的统计分析工具,包括相关性.分层抽样.假设检验,随机数生成等. 一.概括统计 summary statistics 我们通过统计学中提供的函数colStats…
    一.概念 “词频-逆向文件频率”(TF-IDF)是一种在文本挖掘中广泛使用的特征向量化方法,它可以体现一个文档中词语在语料库中的重要程度. 词语由t表示,文档由d表示,语料库由D表示.词频TF(t,d)是词语t在文档d中出现的次数.文件频率DF(t,D)是包含词语的文档的个数.如果我们只使用词频来衡量重要性,很容易过度强调在文档中经常出现,却没有太多实际信息的词语,比如“a”,“the”以及“of”.如果一个词语经常出现在语料库中,意味着它并不能很好的对文档进行区分.TF-IDF就是在数…
  一.概念 决策树及其集合是分类和回归的机器学习任务的流行方法. 决策树被广泛使用,因为它们易于解释,处理分类特征,扩展到多类分类设置,不需要特征缩放,并且能够捕获非线性和特征交互. 诸如随机森林和增强的树集合算法是分类和回归任务的最佳表现者. 决策树(decision tree)是一种基本的分类与回归方法,这里主要介绍用于分类的决策树.决策树模式呈树形结构,其中每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一种类别.学习时利用训练数据,根据损失函数最小化的原则建立…
  一.原理 在机器学习处理过程中,为了方便相关算法的实现,经常需要把标签数据(一般是字符串)转化成整数索引,或是在计算结束后将整数索引还原为相应的标签. Spark ML 包中提供了几个相关的转换器: StringIndexer,IndexToString,OneHotEncoder,VectorIndexer,他们提供了十分方便的特征转换功能,这些转换器都位于org.apache.spark.ml.feature包下. 值得注意的是,用于特征转换的转换器和其他的机器学习算法一样,也属于Ml…
    一.概念 一个典型的机器学习过程从数据收集开始,要经历多个步骤,才能得到需要的输出.这非常类似于流水线式工作,即通常会包含源数据ETL(抽取.转化.加载),数据预处理,指标提取,模型训练与交叉验证,新数据预测等步骤. MLlib标准化了用于机器学习算法的API,从而使将多种算法组合到单个管道或工作流程中变得更加容易. 本节介绍了Pipelines API引入的关键概念,其中PipeLine(管道)概念主要受scikit-learn项目的启发. 在介绍工作流之前,我们先来了解几个重要概念:…
  降维(Dimensionality Reduction) 是机器学习中的一种重要的特征处理手段,它可以减少计算过程中考虑到的随机变量(即特征)的个数,其被广泛应用于各种机器学习问题中,用于消除噪声.对抗数据稀疏问题.它在尽可能维持原始数据的内在结构的前提下,得到一组描述原数据的,低维度的隐式特征(或称主要特征).简单来说,在高维数据中筛选出对我们有用的变量,减小计算复杂度提高模型训练效率和准确率,这就是我们要说的降维. MLlib机器学习库提供了两个常用的降维方法:奇异值分解(Singula…
    MLlib支持存储在单个机器上的局部向量和矩阵,以及由一个或多个RDD支持的分布式矩阵. 局部向量和局部矩阵是用作公共接口的简单数据模型. 底层线性代数操作由Breeze提供. 在监督学习中使用的训练示例在MLlib中称为“标记点”. 一.本地向量 局部向量具有整数类型和基于0的索引和双类型值,存储在单个机器上. MLlib支持两种类型的局部向量:密集和稀疏. 密集向量由表示其条目值的双数组支持,而稀疏向量由两个并行数组支持:索引和值. 例如,矢量(1.0,0.0,3.0)可以以密集格式…
  一.概念 Word2vec是一个Estimator,它采用一系列代表文档的词语来训练word2vecmodel.该模型将每个词语映射到一个固定大小的向量.word2vecmodel使用文档中每个词语的平均数来将文档转换为向量,然后这个向量可以作为预测的特征,来计算文档相似度计算等等. 二.代码实现 2.1.引包,获取spark 首先,我们引入相关包: import java.util.Arrays; import java.util.List; import org.apache.spark…
    一.概念 CountVectorizer 旨在通过计数来将一个文档转换为向量.当不存在先验字典时,Countvectorizer作为Estimator提取词汇进行训练,并生成一个CountVectorizerModel用于存储相应的词汇向量空间.该模型产生文档关于词语的稀疏表示,其表示可以传递给其他算法,例如LDA( Latent Dirichlet Allocation 隐含狄利克雷分布). 在CountVectorizerModel的训练过程中,CountVectorizer将根据语…
  一.概念 1.1.定义 按照某一个特定的标准(比如距离),把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同时不再同一个簇内的数据对象的差异性也尽可能的大. 聚类属于典型的无监督学习(Unsupervised Learning) 方法.与监督学习(如分类器)相比,无监督学习的训练集没有人为标注的结果.在非监督式学习中,数据并不被特别标识,学习模型是为了推断出数据的一些内在结构. 1.2.主要方法 层次聚类(Hierarchical Clustering):合并法.分…
  一.概念 协同过滤算法主要分为基于用户的协同过滤算法和基于项目的协同过滤算法.   基于用户的协同过滤算法和基于项目的协同过滤算法 1.1.以用户为基础(User-based)的协同过滤 用相似统计的方法得到具有相似爱好或者兴趣的相邻用户,所以称之为以用户为基础(User-based)的协同过滤或基于邻居的协同过滤(Neighbor-based Collaborative Filtering). 具体步骤为: 1.收集用户信息收集可以代表用户兴趣的信息.一般的网站系统使用评分的方式或是给予评…
  PCA 一.概念 主成分分析(Principal Component Analysis)是指将多个变量通过线性变换以选出较少数重要变量的一种多元统计分析方法,又称为主成分分析.在实际应用场合中,为了全面分析问题,往往提出很多与此有关的变量(或因素),因为每个变量都在不同程度上反映这个应用场合的某些信息. 主成分分析是设法将原来众多具有一定相关性(比如N个指标)的指标,重新组合成一组新的相互无关的综合指标来代替原来的指标,从而实现数据降维的目的,这也是MLlib的处理手段之一. 二.代码实现…
    分类 分类旨在将项目分为不同类别. 最常见的分类类型是二元分类,其中有两类,通常分别为正数和负数. 如果有两个以上的类别,则称为多类分类. spark.mllib支持两种线性分类方法:线性支持向量机(SVM)和逻辑回归. 线性SVM仅支持二进制分类,而逻辑回归支持二进制和多类分类问题. 对于这两种方法,spark.mllib支持L1和L2正则化变体. 训练数据集由MLlib中LabeledPoint的RDD表示,其中标签是从零开始的类索引:0,1,2,.... 一.基本思想 统计学习理论…
  逻辑斯蒂回归 一.概念 逻辑斯蒂回归(logistic regression)是统计学习中的经典分类方法,属于对数线性模型.logistic回归的因变量可以是二分类的,也可以是多分类的.logistic回归的因变量可以是二分非线性差分方程类的,也可以是多分类的,但是二分类的更为常用,也更加容易解释.所以实际中最为常用的就是二分类的logistic回归. 二.logistic分布 设X是连续随机变量,X服从逻辑斯蒂分布是指X具有下列分布函数和密度函数:   分布函数和密度函数 式中,μ为位置参…
六 WCF4.0中的简化配置功能 WCF4.0为了简化服务配置,提供了默认的终结点.绑定和服务行为.也就是说,在开发WCF服务程序的时候,即使我们不提供显示的 服务终结点,WCF框架也能为我们的服务提供一些默认配置功能的服务终结点.当然也包含默认的绑定和默认的服务行为.这一切都是为了简化配置过程,避免一 些不必要的错误. 下面我们就来通过代码示例来体验一下WCF4.0提供简化配置的功能. (1)默认终结点 默认终结点(Default Endpoints)指的是,如果开发人员没有为服务显示配置服务…
Algorithms: https://leetcode-cn.com/problems/single-number/submissions/ Review: “What Makes a Good Developer?” by Jonathan Bluks https://link.medium.com/O0CfiH0QfZ Tips: android handler. 主线程不做处理复杂的问题,创建hanlder发消息到主线程,主线程loop 从messagequeue取消息进行处理. Sha…
转载:https://zhuanlan.zhihu.com/p/38440477 转载:https://blog.csdn.net/starzhou/article/details/78930490 转载:https://www.cnblogs.com/wzdLY/p/9649101.html 1.离散的优势: (1)离散化后的特征对异常数据有很强的鲁棒性:比如一个特征是年龄>30是1,否则0.如果特征没有离散化,一个异常数据“年龄300岁”会给模型造成很大的干扰: (2)逻辑回归属于广义线性模…
如果你在寻找卡方分布是什么?如何实现卡方检验?那么请看这篇博客,将以通俗易懂的语言,全面的阐述卡方.卡方检验及其python实现. 1. 卡方分布 1.1 简介 抽样分布有三大应用:T分布.卡方分布和$\Gamma$分布.可以简单用四个字概括它们的作用:“以小博大”,即通过小数量的样本容量去预估总体容量的分布情况.这里开始介绍卡方分布.${\chi ^{\text{2}}}$分布在数理统计中具有重要意义.  ${\chi ^{\text{2}}}$分布是由阿贝(Abbe)于1863年首先提出的,…
不多说,直接上干货! 特征选择里,常见的有:VectorSlicer(向量选择) RFormula(R模型公式) ChiSqSelector(卡方特征选择). ChiSqSelector用于使用卡方检验来选择特征(降维).即来特征选择. 我这里,采取手动创建.(但是,这仅仅是为了初学者.我不建议,最好用maven) 完整代码 ChiSqSelector .scala package zhouls.bigdata.DataFeatureSelection import org.apache.spa…
Spark机器学习库中包含了两种实现方式,一种是spark.mllib,这种是基础的API,基于RDDs之上构建,另一种是spark.ml,这种是higher-level API,基于DataFrames之上构建,spark.ml使用起来比较方便和灵活. Spark机器学习中关于特征处理的API主要包含三个方面:特征提取.特征转换与特征选择.本文通过例子介绍和学习Spark.ml中提供的关于特征处理API中的特征选择(Feature Selectors)部分. 特征选择(Feature Sele…
Spark机器学习库中包含了两种实现方式,一种是spark.mllib,这种是基础的API,基于RDDs之上构建,另一种是spark.ml,这种是higher-level API,基于DataFrames之上构建,spark.ml使用起来比较方便和灵活. Spark机器学习中关于特征处理的API主要包含三个方面:特征提取.特征转换与特征选择.本文通过例子介绍和学习Spark.ml中提供的关于特征处理的API. 特征提取(Feature Extractors) 1.  TF-IDF (Hashin…
作者:韩信子@ShowMeAI 大数据技术 ◉ 技能提升系列:https://www.showmeai.tech/tutorials/84 行业名企应用系列:https://www.showmeai.tech/tutorials/63 本文地址:https://www.showmeai.tech/article-detail/296 声明:版权所有,转载请联系平台与作者并注明出处 收藏ShowMeAI查看更多精彩内容 背景 Sparkify 是一个音乐流媒体平台,用户可以获取部分免费音乐资源,也…
Spark机器学习 1 在线学习 模型随着接收的新消息,不断更新自己:而不是像离线训练一次次重新训练. 2 Spark Streaming 离散化流(DStream) 输入源:Akka actors.消息队列.Flume.Kafka.-- http://spark.apache.org/docs/latest/streaming-programming-guide.html 类群(lineage):应用到RDD上的转换算子和执行算子的集合 3 MLib+Streaming应用 3.0 build…
Spark机器学习 Day1 机器学习概述 今天主要讨论个问题:Spark机器学习的本质是什么,其内部构成到底是什么. 简单来说,机器学习是数据+算法. 数据 在Spark中做机器学习,肯定有数据来源,在Spark的最底层肯定是RDD封装,这个和Spark具体是什么版本没有任何关系,版本发展只不过是提供了更多高层的API而已,例如DataFrame.Dataset等,而之所以有DataFrame.Dataset,一般情况下是为了使用统一的优化引擎(抽象程度越高,优化算法和空间越大). RDD有一…
Spark机器学习库现支持两种接口的API:RDD-based和DataFrame-based,Spark官方网站上说,RDD-based APIs在2.0后进入维护模式,主要的机器学习API是spark-ml包中的DataFrame-based API,并将在3.0后完全移除RDD-based API. 在学习了两周Spark MLlib后,准备转向DataFrame-based接口.由于现有的文档资料均是RDD-based接口,于是便去看了看Spark MLlib的源码.DataFrame-…
Spark机器学习之协同过滤算法 一).协同过滤 1.1 概念 协同过滤是一种借助"集体计算"的途径.它利用大量已有的用户偏好来估计用户对其未接触过的物品的喜好程度.其内在思想是相似度的定义 1.2 分类 1.在基于用户的方法的中,如果两个用户表现出相似的偏好(即对相同物品的偏好大体相同),那就认为他们的兴趣类似.要对他们中的一个用户推荐一个未知物品, 便可选取若干与其类似的用户并根据他们的喜好计算出对各个物品的综合得分,再以得分来推荐物品.其整体的逻辑是,如果其他用户也偏好某些物品,…
Spark 概述 Apache Spark 是一个快速的, 多用途的集群计算系统. 它提供了 Java, Scala, Python 和 R 的高级 API,以及一个支持通用的执行图计算的优化过的引擎. 它还支持一组丰富的高级工具, 包括使用 SQL 处理结构化数据处理的 Spark SQL, 用于机器学习的 MLlib, 用于图形处理的 GraphX, 以及 Spark Streaming. 下载 从该项目官网的 下载页面 获取 Spark. 该文档用于 Spark 2.2.0 版本. Spa…