Machine Learning
文章平均质量分 91
深圳湾刘能
耐得住寂寞,持续耕耘。
展开
-
超详细分析如何用python处理ECG&PPG数据
这篇博文主要和大家分享一下如何使用python处理ECG和PPG的数据,从而使用PPG和ECG的数据进行血压的推测。首先普及一下ECG和PPG,首先ECG 心电图(electrocardiogram)心脏在每个心动周期中,由起搏点、心房、心室相继兴奋,伴随着生物电的变化,通过心电描记器从体表引出多种形式的电位变化的图形。PPG(photoplethysmograph)是利用光电容积描记(PPG)...原创 2020-03-20 15:23:24 · 25042 阅读 · 50 评论 -
PLA算法的理解(perceptron learning algorithm)
最近在学习台大林轩田教授的课程,一开始就讲到了perceptron learning algorithm,这个算法是用来对线性可分数据进行分类的。要注意这里是线性可分的数据,这个也是PLA算法的局限的地方,如果PLA算法运用在线性不可分的数据中的时候,算法将会无限循环下去,还有就是即使我们的数据是线性可分的,我们也不知道PLA算法什么时候才能找到一个最优的解,可能循环操作几次就可以得到,也有可能需...原创 2018-11-06 15:38:08 · 2871 阅读 · 3 评论 -
AdaBoost算法的理解
今天看了周志华教授的Boosting算法研究报告,之前我也有学习过AdaBoost算法,现在就想结合周教授的讲座和自己对boosting算法的理解写一篇博文。说到Boosting算法,其实Boosting算法是一个算法族,所有的Boosting算法都是基于属于Boosting算法族,然而AdaBoosting算法是Boosting算法族中的一个典型的代表。Boosting是一族可将弱学习器提升为...原创 2018-11-10 11:40:51 · 461 阅读 · 0 评论 -
主成分分析(PCA)算法理解
主成分分析(PCA,principle component analysis)算法是一种机器学习中常用的降维算法,这种算法可以用在数据压缩降维,这样可以加快机器学习的速度,PCA还可以用在数据可视化上,因为高维的特征数据是无法观察的,我们可以通过PCA算法将高维的数据降到2维或者3维,这样就可以在坐标系中体现出来。首先我们来看看PCA降维的原理,假设在Rn{R^n}Rn空间中有m个点{x(1),...原创 2018-12-21 17:30:10 · 612 阅读 · 0 评论 -
决策树怎么剪枝?
首先看到这个题目,我们就会想到为什么决策树要剪枝?答案就是如果一棵决策树完全生长,那么这棵决策树就很有可能面临过拟合的问题。完全生长的决策树所对应的每个叶节点中只会包含一个样本,这样决策树就是过拟合的,所以我们就需要对这种决策树进行剪枝操作来提升我们决策树模型的泛化能力。这也印证了一个原则:奥卡姆剃刀原理。这个原理最简单的描述就是“如无必要,勿增实体”,意思就是说如果多种模型或者方法都能够解释或...原创 2019-01-11 10:07:37 · 6882 阅读 · 7 评论 -
手动推导SVM
SVM支持向量机作为一种常用的分类器可以说是应用非常广泛的,我们直接进入正题,来手动推导SVM,让大家一起加深SVM的算法流程。首先SVM的意义就是在空间中找到一个超平面,把空点中的两个线性可分的点集完全分开,我们把这个超平面定义成w⋅xi+b=0w \cdot {x_i} + b = 0w⋅xi+b=0,其中www是一个n维的向量xi{x_i}xi表示空间中的点。与此同时,我们不仅需要用超平...原创 2019-03-11 18:32:06 · 1372 阅读 · 1 评论 -
隐马尔科夫模型(HMM)算法的理解与超详细推导
今天看了徐亦达教授的HMM讲解,感觉有所收获,并将隐马尔科夫模型算法的推导整理了一下,帮助大家一起理解这个算法。首先我们通过一个股票的案例来引入这个算法,我们来看看这个股票行情和涨跌观测值的一个状态图:由图中可以看出,股市的行情分成牛市、熊市和均市,这三种行情是可以互相转化的,并且互相转化是有一定的概率的,这种行情是观测不到的,是一种隐变量,也可以看成是一种状态 qqq,并且在每一个时间点的状...原创 2019-03-16 13:53:19 · 3581 阅读 · 4 评论 -
EM算法理解与推导
首先我们开门见山,EM算法到底是干什么的,EM算法是在面对一个含有隐变量的概率模型,是一种迭代算法,目标就是极大化观测数据关于参数的对数似然函数。这么说可能很难理解,我们来举一个例子吧,就拿抛硬币来说,假设有A和B两枚硬币,要估计的参数是它们各自翻正面的概率。观察的过程是先随机选择硬币A或者B,然后连续扔10次,重复此步骤5次。意思就是说有两枚硬币,只知道抛出之后的分布,但是不知道是哪个硬币抛出...原创 2019-03-12 17:28:38 · 475 阅读 · 0 评论 -
随机梯度下降SGD算法理解
随机梯度下降算法(Stochastic gradient descent,SGD)在神经网络模型训练中,是一种很常见的优化算法。这种算法是基于梯度下降算法产生的,所以要理解随机梯度下降算法,必须要对梯度下降算法有一个全面的理解。梯度下降:这个算法我在之前的博文Logistic Regression的数学推导过程以及Python实现 中有详细的说明介绍,这里我们再来简单回顾一下梯度下降算法:假设...原创 2019-05-29 10:13:21 · 24131 阅读 · 9 评论 -
一起学习如何用LightGBM做决策(DomainSelection)
可能很多朋友都听说过LightGBM和GBDT,这里的GB代表的是梯度提升,也许有很多的朋友了解提升算法,在我的理解看来,梯度提升就是将许多弱的分类器联系在一起最终组合成一个强的分类器。LightGBM是微软开源的,网上也有中文的教程,这篇博文主要就是介绍一下如何用lightGBM来做决策,讲述一下具体的流程,希望对大家有所帮助。 首先,我们要知道LightGBM所支持的数据格式其实是和SVM一...原创 2018-08-08 09:52:17 · 1206 阅读 · 0 评论 -
基于协同过滤算法使用Tensorflow构建一套电影推荐系统
现在在互联网的时代,你会发现有很多智能的推荐系统,比如说商品的推荐,歌曲的推荐,电影的推荐。在推荐系统中,协同过滤算法是诞生最早的,也是很常用的推荐算法。有句古话:物以类聚,人以群分。推荐算法的思想就是找到和你相似的人,也就是口味相同的人,把他喜欢的物品或者电影歌曲推荐给你;或者是将你买过的或者喜欢的物品,电影或者歌曲推荐给你;还有就是可能将你搜索过的物品、电影或者歌曲推荐给你;还有可能就是综合上...原创 2018-07-07 17:02:57 · 13122 阅读 · 73 评论 -
决策树---ID3算法的理解
ID3(Iterative Dichotomiser 3)算法是由罗斯昆(J. Ross Quinlan)于1975年在悉尼大学提出的一种分类预测算法,算法的核心是“信息熵”(information entropy)。这个算法是通过计算出每个属性的信息增益,来选取信息增益(information gain)最高的属性来作为决策树划分的属性和标准。为什么要选取信息增益最高的属性来划分,我们来看一下下...原创 2018-07-10 17:07:02 · 1831 阅读 · 0 评论 -
TensorFlow做图片的预处理
今天我们来一起学习一下如何用TensorFlow来处理图片,其实这个也很简单,主要就是做图片旋转,亮度色彩对比度的调整,还有就是裁剪等一系列处理。首先我们导入要用的Python库:import tensorflow as tfimport matplotlib.pyplot as plt我们用的是一张喵的图片,原图如下: ...原创 2018-07-17 10:14:29 · 1907 阅读 · 0 评论 -
决策树---C4.5算法的理解
在上一篇博文中,我们一起学习了决策树中的ID3算法,知道了如何选择决策树分裂的属性。但是我们细心一想,在ID3算法中仍然有几方面的不足: 1. 在ID3算法当中,选择分裂的属性的时候,依据是信息增益,其实信息增益用作分裂的依据并不如信息增益率(information gain ratio)。 2. ID3算法不能对连续的数据进行处理,只能将连续的数据离散化处理。 3. ID3算法并没有...原创 2018-07-11 16:29:30 · 903 阅读 · 0 评论 -
爱情中的决策树和贝叶斯
昨天看到一篇文章情人的加分扣分,请遵守贝氏定理,看完觉得写得真心不错,就和同事聊起来了,说现在找男朋友都可以画决策树了,于是我随意发了一张找男朋友的决策树给同事: 于是我说:“现在找女朋友真的很扎心啊,年龄大于30岁的话,机会都没有了。”,当然这是一句开玩笑的话,也并不代表我的择偶观,也不代表每一个人的择偶观,相信每一个人的心中都会有自己的一颗决策树,关于如何选择决策树分裂的属性我在前几篇博文中...原创 2018-07-17 18:27:33 · 5091 阅读 · 2 评论 -
决策树---CART算法的理解
前面两篇博文我们介绍了一下决策树的ID3和C4.5算法,现在我们一起来看看CART算法吧,CART是英文Classification And Regression Tree的缩写,也就是分类回归树,顾名思义,CART可以用作分类也可以用作回归。比如说拿前两篇博文中的股票数据来说,我们可以构建CART决策树来预测明日股票的涨跌,这是分类;也可以通过CART决策树预测明日股票的涨跌幅度,这是回归。所以...原创 2018-07-13 15:04:16 · 1010 阅读 · 0 评论 -
XGBoost 分类模型的Python实现
今天我们一起来学习一下如何用Python来实现XGBoost分类,这个是一个监督学习的过程,首先我们需要导入两个Python库:import xgboost as xgbfrom sklearn.metrics import accuracy_score这里的accuracy_score是用来计算分类的正确率的。我们这个分类是通过蘑菇的若干属性来判断蘑菇是否有毒的分类,我们来看看数据...原创 2018-07-19 17:33:23 · 13244 阅读 · 6 评论 -
对PageRank算法的理解
顾名思义,PageRank其实就是网页排名的意思,当我们现在在一个搜索引擎搜索一个关键词的时候,搜索引擎如何将我们最想得到的信息放在前面呢,这里就涉及到了网页的排名,在我们日常的搜索中,除了商业上的竞价排名,总的来说,一个特定的网页搜索取决于网页的质量信息和这个查询与每个网页的相关性信息。在互联网上,一个网页被很多其他网页所链接,那么就说明这个网页受到普遍的承认和信赖,那么这个网页的排名就应该高,...原创 2018-07-21 11:59:50 · 969 阅读 · 2 评论 -
naive bayes 算法的Python实现与理解
在机器学习中,朴素贝叶斯算法对于大家来说其实并不陌生,在我前面的博客中,我也对朴素贝叶斯算法的原理有所介绍,这篇文章我们一起来学习如何用Python来实现这个朴素贝叶斯算法。...原创 2018-07-28 11:02:39 · 2709 阅读 · 2 评论 -
Logistic Regression的数学推导过程以及Python实现
Logistic Regression称为逻辑回归,简称LR,是机器学习中一个很基础的模型,是一种广义的线性回归模型,关于Logistic Regression的知识在这里就不再累述,我们一起来吧Logistic Regression进行一次数学推导来理解其中的原理。 Logistic Regression虽然中文名称带有“回归”二字,但是本质上是一个二分类模型,所以这里运用到了一个Logist...原创 2018-06-26 18:33:01 · 1902 阅读 · 1 评论