机器学习_用PCA主成分分析给数据降维
机器学习 _ 用 PCA
主成分分析给数据降维
有时我们的数据中包括很多属性,有些是没意义的,有些是重复的,有些组合后意义更明显。此时,我们需要简化属性节约算力,去噪,去冗余,求取更典型的属性,同时又希望不损失数据本身的意义。
主成分分析(Principal Component
Analysis,PCA),是一种统计方法。通过正交变换将一组可能存在相关性的变量转换为一组线性不相关的变量,转换后的这组变量叫主成分。数据分析中常使用
PCA 给数据降维,它能在指定的损失范围内最大的简化属性。本篇将介绍 PCA
的原理,Python 实现及应用场景。
1 1. 特征值与特征向量
PCA
的核心算法是:协方差矩阵和特征值分解,先来看看特征值分解相关的知识点。
1.1 基
我们无时无刻不用到基,十进制就是以 10 为基底的描述,一个小时 60
分钟,60 就是基底,再说复杂一点,傅里叶变换中,余弦 (或正弦)
波是基底,小波变换中小波是基底,可以把它理解成一种基本的参照,比如 1
公斤,1 海里,1 升…
一个点在宇宙中本没有坐标,但只要定义了基,它就能被描述。任何的东西都可以借助基来描述。但不 ...
时间序列_用树回归方法画股票趋势线
机器学习 _
用树回归方法画股票趋势线
本篇的主题是分段线性拟合,也叫回归树,是一种集成算法,它同时使用了决策和线性回归的原理,其中有两点不太容易理解,一个是决策树中熵的概念,一个是线性拟合时求参数的公式为什么是由矩阵乘法实现的。如需详解,请见前篇:
《机器学习_决策树与信息熵》
《机器学习_最小二乘法,线性回归与逻辑回归》
1. 画出股票的趋势线
我们常在股票节目里看到这样的驱势线:
比如说平台突破就可以买入了,几千支股票,能不能用程序的方式筛选哪支突破了呢?需要解决的主要问题是:怎么判断一段时间内股票的涨/跌/横盘,以及一段趋势的起止点和角度呢?
这里我们使用分段线性拟合,图中蓝色的点是某支股票每日的收盘价,红色的直线为程序画出的趋势线。稍做修改,还可以轻松地画出每段趋势所在的箱体,阻力线和支撑线,以及判断此前一般时间的趋势。下面我们就来看看原理和具体算法。
2. 线性回归
先看看线性回归(Linear
regression),线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。简单地说,二维中就是画一条直线,让 ...
机器学习_最小二乘法,线性回归与逻辑回归
机器学习 _
最小二乘法,线性回归与逻辑回归
1. 线性回归
线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。
直观地说,在二维情况下,已知一些点的 X,Y 坐标,统计条件 X 与结果 Y
的关系,画一条直线,让直线离所有点都尽量地近(距离之和最小),用直线抽象地表达这些点,然后对新的
X 预测新的Y。具体实现一般使用最小二乘法。
线性回归
线性回归的优点是理解和计算都相对简单,缺点是无法解决非线性问题。
2. 最小二乘法
1) 原理
最小二乘法(ordinary least squares,简称
OLS)的核心就是保证所有数据偏差的平方和最小(“平方”的在古时侯的称谓为“二乘”)。
我们用直线拟合一些点,直线方程是 y’=ax+b,每点偏差是 y-y’,其中 y
是实际值,y’是估计值。sum((y-y’)^2) 最小时,直线拟合最好。上试代入
y’,可得 M=sum((y-(ax+b))^2),对它求导取极值。此时,x,y
是已知的,未知的是 a 和 b,所以分别求 M 对 a 和 b 的偏导,解出的 a, ...
机器学习_决策树与信息熵
机器学习 _ 决策树与信息熵
1. 决策树
决策树 (Decision
Tree)是一种预测模型;它是通过一系列的判断达到决策的方法。下面是一个判断是否买房的例子,一共
15 个实例,有 Age, Has_job, Own_house, Credit_rating
四个属性,树的各个分叉是对属性的判断,叶子是各分枝的实例个数。
决策树
这是个很简单的例子,只用了两层,每个叶子节点就得到了一致的结果(如
2/2),如果不一致,则会使用其它属性递归地划分,直到属性用完,或分支下得到一致的结果,或者满足一定停止条件。对于有歧义的叶子节点,一般用多数表决法。
决策树的优点是复杂度低,输出结果直观,对中间值缺失不敏感;缺点是可能过拟合,有时用到剪枝的方法避免过拟合。
决策树的原理看起来非常简单,但在属性值非常多,实例也非常多的情况下,计算量是庞大的,我们需要采用一些优化算法:先判断哪些属性会带来明显的差异,于是引出了信息量的问题。
2. 信息量
意外越大,越不可能发生,概率就越小,信息量也就越大,也就是信息越多。比如说“今天肯定会天黑”,实现概率
100%,说了和没说差不多 ...
时间序列_隐马尔可夫模型HMM
机器学习 _ 隐马尔可夫模型
HMM
1. 马尔可夫链
马尔可夫链是满足马尔可夫性质的随机过程。马尔可夫性质是无记忆性。
也就是说,这一时刻的状态,受且只受前一时刻的影响,而不受更往前时刻的状态的影响。我们下面说的隐藏状态序列就马尔可夫链。
2. 隐马尔可夫模型
隐马尔可夫模型(Hidden Markov
Model,HMM)是统计模型,用它处理的问题一般有两个特征:
第一:问题是基于序列的,比如时间序列,或者状态序列。
第二:问题中有两类数据,一类序列数据是可以观测到的,即观测序列;而另一类数据是不能观测到的,即隐藏状态序列,简称状态序列,该序列是马尔可夫链,由于该链不能直观观测,所以叫“隐”马尔可夫模型。
简单地说,状态序列前项能算出后项,但观测不到,观测序列前项算不出后项,但能观测到,观测序列可由状态序列算出。
HMM 模型的主要参数是λ=(A,B,Π),数据的流程是通过初始状态 Pi
生成第一个隐藏状态 h1,h1 结合生成矩阵 B 生成观测状态 o1,h1
根据转移矩阵 A 生成 h2,h2 和 B 再生成
o2,以此类推,生成一系列的观测值。
HMM
3. 举例
1) ...
机器学习_集成算法
机器学习 _ 集成算法
为什么使用集成算法
简单算法一般复杂度低,速度快,易展示结果,但预测效果往往不是特别好。每种算法好像一种专家,集成就是把简单的算法(后文称基算法/基模型)组织起来,即多个专家共同决定结果。
如何组织算法和数据
这里我们的着眼点不是某个算法,某个函数,而是对数据和算法整体的规划。
从数据拆分的角度看:可以按行拆分数据,也可以按列给属性分组。
从算法组合的成份看:可以集成不同算法,也可以集成同一算法不同参数,还可以集成同一算法使用不同数据集(结合数据拆分)。
从组合的方式看:可以选择少数服从多数,或加权求合(可根据正确率分配权重)。
从组合的结构看:可以是并行,串行,树型或者更复杂。
综上,我们看到了各种构造集成的方法,这里面可选的组合太多,不可能一一尝试,目前拼的还是人的经验:对数据的理解,对算法的组织,以及对工具的驾驶能力。在使用集成算法的过程中,除了调库,调参,更重要的是领会精神。也可以自己编写一些集成算法。
三个臭皮匠顶个诸葛亮
三个臭皮匠是否能顶诸葛亮,这还得具体问题,具体分析。如果基算法选错了,即使再怎么组合,再怎么调参也 ...
实战大数据竞赛平台——Kaggle入门
大数据竞赛平台——Kaggle 入门
#算法实战
在学习了一些数据挖掘和机器学习的算法之后,需要积累实际开发经验。在实践的过程中不仅需要自己摸索,还需要向牛人学习和请教。Kaggle
就提供这样的数据平台,企业或者研究者可以将数据、问题描述、期望的指标发布到
Kaggle 上,开发者其数据下载到本地,分析,处理后将结果上传,Kaggle
将结果排名显示,有的比赛设有资金。Kaggle
还有活跃的讨论区,供大家交流。
如何使用 Kaggle
我们先来看看,Kaggle 的具体使用方法。在竞赛界面中
https://www.kaggle.com/competitions,可看到比赛分类:Getting
Start,Playground,Featured,Research 等(用不同颜色区分).建议初学者从
Getting Start
级别开始,在这个级别上可以看到更多的教程和代码分享,题目也比较简单,适合入门.
competitions
以参赛队最多的 Tinanic
沉船问题为例.https://www.kaggle.com/c/titanic.它的目标是预测乘客是否幸 ...
百度自动驾驶系统Apollo源码分析
百度自动驾驶系统 Apollo
源码分析
Apollo(阿波罗)是百度今年发布的汽车自动驾驶系统,它是不是可以无人驾驶?安全性又如何保证?下面我们就来看看自动驾驶指的是什么,以及它是如何实现的.
##自动驾驶评级
先来看看什么是自动驾驶,2014 年,SAE
International(国际汽车工程师协会)制订了一套自动驾驶汽车分级标准,其对自动化的描述分为
5 个等级。
自动驾驶评级
从辅助驾驶到全自动驾驶,都属于自动驾驶,只是级别不同,现在有很多车已经配置了定速巡航,自动泊车,这是从
L1 走向 L2 阶段;而 L3
是说人可以不进行主动驾驶,但需要时刻保持注意力;据说 Google 的 Waymo
自动驾驶系统已达到 L4
水平,它能在特定地理区域和条件下,完成整个动态驾驶任务.大家离 L5
还都有一段很长的路要走.百度的目标是 2019 年量产 L3 的汽车.
同样是自动,但是程度不同,具体要看:设计运行范围(operational
design domain,简称
ODD),它包括地理位置、道路类型、速度范围、天气、时间、国家和地方性交通法律法规等等.
硬 ...
AlphaGoZero与增强学习
AlphaGo Zero 与增强学习
2017 年 10 月 19 日凌晨,DeepMind
在《自然》杂志上发表了一篇论文,正式推出人工智能围棋程序的最新版本——AlphaGo
Zero.
AlphaGo Zero 成长史
最初 AlphaGo Zero
除了围棋的基本规则以外,没有任何关于围棋的知识;
3 个小时之后,它通过自学入门围棋,成为人类初学者水平;
19
个小时之后,它自已总结出了一些"套路",比如死活,打劫,先占边角等等;
自学第三天后,它战胜了 AlphaGo Lee(当初击败李世石的 AlphaGo
版本);
自学第四十天后,它战胜了 AlphaGo Master(今年击败柯洁的 AlphaGo
版本)
与之前的 AlphaGo 版本相对,它不但提高了水平,而且节约了算力.
这还不是最重要的,最重要的是它只使用了增强学习,因此它的意义就不仅仅是赢得棋类比较这么简单了.
增强学习
先来看看什么是增强学习(Reinforcement
Learning),我们知道机器学习分为有监督学习和无监督学习,增强学习介于它们两个之间,它关注的是智能 ...
深度学习_总结篇
深度学习 _ 总结篇
前篇总结
深度学习 _ 简介及相关概念
http://blog.csdn.net/xieyan0811/article/details/78401473
深度学习 _ 工具
http://blog.csdn.net/xieyan0811/article/details/78411882
深度学习 _BP 神经网络
http://blog.csdn.net/xieyan0811/article/details/78425453
深度学习 _ 卷积神经网络 CNN
http://blog.csdn.net/xieyan0811/article/details/78438329
深度学习 _ 循环神经网络 RNN 与 LSTM
http://blog.csdn.net/xieyan0811/article/details/78462982
朋友反馈说,看不懂 CNN 和 RNN
篇.文章确实因为篇幅原因,有点跳步了.不过我觉得主要原因还是跳过了前面的基础部分.我们很多时候喜欢直击重点,跳过过程,但是有的过程确实跳不过去.
数据挖掘,机器学习,机器视觉,语言处理这些背 ...