Code-Life
Code-Life copied to clipboard
读书总结 《白话大数据与机器学习》
好奇,捎带着理解一下概念,就看一下这书。权当为兴趣买单了。
前6章在讲 数学相关的基础,包括概率,分布,指标,信息熵之类的概念信息,并且举例进行介绍。 第7章讲向量(vector),因为向量是大数据与机器学习的基础。
硬核开启
回归
第八章讲回归,通俗理解就是给定一个自变量x, 给定一个因变量y 求关系f, 使得y = f(x)
具体小节有线性回归, 拟合,残差分析,过拟合以及欠拟合,曲线拟合转为线性拟合.
过拟合overfitting原因
- 样本数量太少,归纳出来的模型不具备泛化能力。
- 力求"完美", 对样本内的每个数据都希望拟合。
欠拟合underfitting原因
- 参数过少。
- 拟合方法不对。 比如对于如下数据
(1.05, 1)
(1.41, 2)
(1.7, 3)
(2.1, 4)
用一次函数不如用二次函数y = x^2
来拟合效果更好
小结
从机器学习的角度来说,回归算法应该算作分类
算法。它更像是人们先给了计算机一些样本,然后让计算机根据样本计算出一种公式或者模型,而在公式或者模型成立后,人们再给这个模型新的样本,他就可以把这个样本猜测或者说推断为某一分类。
聚类
- 曾经做过
人脸聚类
,一副傲娇脸hhh - 第九章讲聚类,通俗理解就是将一些具备共同性质的数据进行汇聚。具体小节有
K-means
, 有趣模式,孤立点,层次聚类,密度聚类,聚类评估 - 本章主要讲了
K-means
算法流程,以及孤立点有其存在意义,层次聚类,即原始聚类完后,在每个类内再进行汇聚的聚类过程,以及密度聚类Dbscan
- 其中衡量距离的有欧式距离,曼哈顿距离,cos距离
- 其中判断两个类是否可以合并同一个类,可以按照最小距离,最大距离,以及平均距离等
分类
- 分类属于有监督学习,给定一部分数据和数据归属的标识来训练分类模型,当训练完毕后,未知的数据使用分类模型得到分类结果。
- 所有的分类算法不管怎么变,都是在解决“某样本是某对象,某样本不是某对象”的概率问题。
- 因变量是定量型的归纳学习称为回归,或者说是连续变量预测;因变量是定性型的归纳学习称为分类,或者说是离散变量预测。
-
朴素贝叶斯公式
p(A|B)p(B) = p(B|A)p(A)
- 贝叶斯理论多半是被专业名词复杂化的典型了,其实它的内涵非常简单:苹果树上30%的苹果是红的,20%的苹果是甜的。红苹果里60%是甜的,那么30%*60%/20%=90%的甜苹果都是红的。既然红苹果甜的概率很大,甜苹果是红色的概率也很大。
- 决策树, 对条件A, 条件B, 条件C进行树上的决策
- 随机森林,多颗决策树,然后归属哪类时进行多个决策树的投票,最终票数醉倒的分类即为最终期望归类。
- 隐马尔科夫模型
- 拼音联想的功能, 根据jin(今) 能联想出来 jintian(今天), 根据当前N的状态,预测N+1的状态
- 前向算法
- 支持向量机SVM (Support Vector Machine)
- 核函数: 可以看到,在一维空间上解决线性不可分问题是把函数映射到二维空间,使得一维空间上的分类边界是二维空间上的分类函数在一维空间上的投影;而在二维空间上解决线性不可分问题是把函数映射到三维空间,使得二维空间上的分类边界是三维空间上的分类函数在二维空间上的投影。那么所有的n维空间上的线性不可分的问题都可以考虑映射到n+1维上去构造分类函数,使得它在n维空间上的投影能够将两个类别分开。
- 算法流程 (1)把所有的样本和其对应的分类标记交给算法进行训练。 (2)如果发现线性可分,那就直接找出超平面。 (3)如果发现线性不可分,那就映射到n+1维空间,找出超平面。 (4)最后得到超平面的表达式,也就是分类函数。
- 遗传算法
- 就是类比生物进化,生物变异,物竞天择,适者生存。
- 所以在其中会做出选择(可能是随机的,也可能是因为环境制约(比如根据结果进行加权选择))
关联分析
寻找事物间内在关联的分析方法, 尤其是关于频繁项集的分析问题。
- 频繁模式和Apriori算法
- Apriori即先分析一元组达到要求后,再选满足条件的一元组,组合成二元组,并且再挑选满足条件的二元组,再组成三元组,挑选满足条件的三元组... 周而复始
- 相关性分析 一个公式
A,B相关度 = p(B|A) / p(B)
如果相关度
=1, 那么A,B没有关系,如果>1, A,B相关,否则相关度为负关系 - 稀有模式与负模式
用户画像
- 即给用户的各种浏览记录和购买记录进行一些标签的抽取,来代表用户的一些主观or客观的信息,如最喜欢的商品分类,一周内登录的次数等。
- 而免费软件之所以免费,可以在软件内植入广告,也可以分析用户的用户画像,然后卖给一些数据机构
推荐算法
- 邻居方法 (Collaborative Filtering)
- 基于用户(User-based CF)
- 基于商品(item-based CF)
- 基于模型的推荐算法 (Matrix factorization techniques for recommender systems)
基于用户的协同过滤(User-based CF)
- 获取到当前用户的特征 feat, 然后和其他用户的feat进行距离比较(可以使用cos距离) 越趋近于1,越近。获取到距离近的用户的商品。
基于商品的系统过滤(item-based CF)
- 通过分析用户的购物记录,对用户喜欢的商品类型进行推荐。
- 计算商品之间相似度,根据用户的浏览记录,选取一批商品,并且返回给用户相近商品的推荐。
文本挖掘
文本挖掘一般来说有以下7个主要的领域。 (1)搜索和信息检索(Information Search,IR):存储和文本文档的检索,包括搜索引擎和关键字搜索。 (2)文本聚类:使用聚类方法,对词汇、片段、段落或文件进行分组和归类。 (3)文本分类:对片段、段落或文件进行分组和归类,在使用数据挖掘分类方法的基础上,通过训练来标记示例模型。 (4)Web挖掘:在互联网上进行数据和文本挖掘,并特别关注网络的规模和相互联系。 (5)信息抽取(Information Extraction,IE):从非结构化文本中识别与提取有关的事实和关系;从非结构化或半结构化文本中抽取出结构化数据的过程。 (6)自然语言处理(Natural Language Processing,NLP):将语言作为一种有意义、有规则的符号系统,在底层解析和理解语言的任务(如词性标注);目前的技术主要从语法、语义的角度发现语言最本质的结构和所表达的意义。 (7)概念提取:把单词和短语按语义分成意义相似的组。
神经网络
- 神经网络和SVM解决问题的思路的不同之处在于,在线性不可分时,SVM会映射到高维去划分超平面;而神经网络是增加输入的变量、网络的层次、输出层。
大数据处理框架
分为在线和离线, 在线就是实时处理,离线就是按照天,小时等时间跨度较大的单位进行数据处理
Hadoop生态
- Hadoop由 Hadoop Common, HDFS, YARN, MapReduce组成
- SQL化管理HDFS的Hive
- 支持OLTP业务(联机事务处理)的NoSQL的HBase
Spark生态
基于内存型数据库,Spark Streaming
支持流处理(micro batch
)
系统架构和调优
速度
一种是对一个”体型”较大的任务的执行时间过长不满, 一种是对一个“体型”较小的任务的响应速度过长不满
- 逻辑层面优化, 多进程,多线程
- 容器层面优化,单机资源消耗很少,考虑部署多个容器,增加其cpu,内存的使用率
- 存储层面优化,使用索引,hash,列式存储,对一些不必要的数据不进行检索,提升效率。
- 环节层面优化,如果单一架构体系下,不需要用虚拟机的可以增加其速度; 文件的cdn(其实就是文件的缓存);
稳定
- 资源不够,借助云服务
- 锁分散
- 类似生活中的排队,当server资源拥塞的情况下,在前端or客户端加一些逻辑,延迟发送用户的请求,并且给以较好的ui提示。
- 谨防雪崩,由单点崩溃引发至整个集群崩溃。
数据解读与数据的价值
AB测试
不知道a方案好还是b方案好时,找两组用户来进行测试。
灰度发布
用策略文件进行控制,仅对全网环境中的部分用户-可以是5%,10%也可以多一些,看一下用户反馈,如果反应良好就全网更新,如果差评如潮,那么回滚上个版本。
数据可视化
- 工作尽量目标化和数字化
- 陈述简洁化