Machine Learning
Forlogen
无论世事如何,你都要成为一个更优秀的人。
展开
-
流形学习(Mainfold Learning)
最近在看生成对抗网络(Generative Adversarial Networks,GAN)的时候,几乎在每一篇文章中都会看到mainfold这个词,哪么它在GAN中想要表达什么呢?或者说GAN和流形学习(Mainfold Learning)之间又有着什么样的关联呢?下面给出我在查阅了相关资料的一个简单的总结对于机器学习所使用的大多数数据集而言,数据的维度都很高,例如,MNIST中的样本为32...原创 2019-05-16 15:07:12 · 12158 阅读 · 3 评论 -
GBDT梯度提升树
GBDT梯度提升树简单来说,绝大多数的机器学习算法都在处理两个因素:模型(model)和目标函数(objective function)或是损失函数(loss function),通常模型又由它所拥有的参数向量表示。在得到具体的训练数据和模型后,机器学习所做的就是根据当前数据来学习它所满足的条件概率分布,或者说根据损失函数来学习目标函数。例如在最基本的线性回归中,假设当前数据集记为D=(xi,...原创 2020-03-27 19:59:14 · 360 阅读 · 0 评论 -
AdaBoost
当我们拥有了不同的分类算法后,能否将其结合起来组成一个更强的分类器,这就是元算法的思路。AdaBoost就是其中最流行的算法,它的特点如下:优点:泛化错误率低,易编码,可以应用在大部分分类器上,无参数调整;缺点:对离群点敏感适用数据类型:数值型和标称性数据强可学习:在PAC框架下,一个概念如果存在一个多项式的学习算法可以学习它,并且正确率很高,就称是强可学习的弱可学习:在PAC框...原创 2020-03-21 16:50:39 · 240 阅读 · 0 评论 -
机器学习 - 随机森林(Random Forest)
Random Forest 当我们在阅读Kaggle之类竞赛的相关方案时,GDBT和Random Forest绝对是两个最为常见的机器学习算法。随机森林(Random Forest,RF)属于集成算法中Bagging(Booststrap aggregating)中一个重要的组成部分,Bagging的核心思想在于从总体样本中随机选取一部分进行训练,通过多次这样的结果进行投票获取平均值作为结果输...原创 2020-03-20 22:28:37 · 3543 阅读 · 0 评论 -
使用sklearn.preprocessing做数据预处理
scikit-learn的preprocessing模块提供了多种用于数据预处理的类,它们可以用于数据的标准化、正则化、缺失数据的填补、类别特征的编码以及自定义数据转换等,sklearn.preprocessing包含如下的方法:数据标准化数据标准化是一项十分重要的工作,尤其是对于目前的有监督学习而言,尽管模型的复杂度越高会使得模型的学习能力越强,但是目前所有模型的效果更大程度上依赖于高质...原创 2020-03-10 18:13:24 · 662 阅读 · 0 评论 -
Expectation Maximisation (EM)
转眼三月也过了一周了,目前看来经过全国人民的无私奉献和医务工作者的辛勤付出,疫情得到了初步的控制。最近几天每天的新增确诊病例除武汉外已经几乎没有了,新增的也是输入型病例,而且武汉本身的每日新增数目也下降到了三四百左右,此外每天的治愈人数仍稳定保持在几千例,一切都在慢慢的变好。感谢广大投身于疫情防治工作的所有国人,无数人用身体力行的宣告着:苟利国家生死以,岂因祸福避趋之。为了不给国家添麻烦,作...原创 2020-03-09 17:33:01 · 443 阅读 · 0 评论 -
Hierarchical Clustering
Hierarchical Clustering层次聚类试图在不同的层次上对数据集进行划分,从而形成树形的聚类结构。层次聚类一般可以分为如下两类:自底向上最开始时每个样本都是一个单独的簇,然后在每一次迭代中合并两个距离最近的簇为一个簇,不断进行此类操作,直到簇的个数到达预先设定的值。其中代表性的算法便是AGNES(AGglomera tive NESting),算法流程如下所示:输入:包含...原创 2020-03-06 16:29:45 · 564 阅读 · 0 评论 -
Density-based Clustering
Density-based Clustering密度聚类即"“基于密度的聚类”,它基于这样一个假设:聚类结构能通过样本分布的紧密程度确定。其中最著名的DBSCAN是均值漂移聚类算法的一个改进。一般情况下,密度聚类从样本密度的角度来考察样本之间的可连接性,并基于可连接样本不断的扩展聚类簇以获得最终的聚类效果。详细的内容可参见刘建平老师的这篇博客,写的很详细:DBSCAN密度聚类算法下面...原创 2020-03-06 16:24:16 · 2493 阅读 · 0 评论 -
支持向量机(support vector machines)
1. 前言在前面的分类问题中,学到了线性回归算法、Logistic回归算法,以及决策树中回归算法,我们在数据集中通过训练数据得到一个很好的拟合数据的模型,在图中表现为可以找到一条直线来将正反例数据很好的分割开来,例如下图所示: 在图中的数据集中我们可以找到无数条分割的线,那么那一条是最好的呢?支持向量机算法就提供了一个很好的模型。2.支持向量机初识支持向量机(support...原创 2018-09-16 16:31:10 · 375 阅读 · 0 评论 -
sklearn-回归算法的学习
1. sklearn库中的线性回归import numpy as np import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression # 线性回归# ##线性回归# paras:# fit_intercept:boolean,是否进行拦截计算# norm...原创 2018-12-15 10:54:24 · 1990 阅读 · 0 评论 -
sklearn-交叉验证
交叉验证:评估模型的表现如果我们训练出的模型只在训练集上表现极好,但在未知的数据上效果很差,说明出现了过拟合,为了避免这种现象的出现,我们需要验证集来评估我们的模型。当我们在训练集上训练好一个模型后,现在验证集上对模型进行,如果验证集上的效果比较好时,再到测试集上就行最后的评估。但是单纯的将数据集分为三部分,会大大减少模型学习的数据量(因为有时数据是很难获取的,数目可能会比较少),并且最后模型...原创 2018-12-23 15:19:10 · 4835 阅读 · 0 评论 -
频繁模式增长算法(FP-growth)
算法提出的背景尽管有着很多的办法用来提升Apriori算法效率,但是如下的两个问题并没有得到很好的解决:仍会产生大量的候选集,比如10410^4104个频繁1项集,就需要产生10710^7107个频繁2项集在产生频繁K项集的过程中,需要重复的扫描数据库,开销很大FP-growth算法的基本原理FP-growth算法的提出,就很好的解决了在产生候选项集过程中巨大的开销。它采用了分治的...原创 2019-03-26 17:32:40 · 5065 阅读 · 2 评论 -
数据立方体(Data Cube)
基本概念先给出一个数据立方体的直观感受,如下图所示数据立方体是一种多维数据模型,下面介绍一下多维模型的相关概念:• 多维数据模型:为了满足用户从多角度多层次进行数据查询和分析的需要而建立起来的基于事实和维的数据库模型,其基本的应用是为了实现OLAP(Online Analytical Processing)• 立方体:它是由维度构建出来的多维空间,包含了所要分析的基础数据,所有的聚合数据...原创 2019-03-18 10:25:35 · 26056 阅读 · 4 评论 -
(译)The Ultimate Guide to Data Cleaning-数据清理指南
数据的质量好坏对于最后应用的效果起着重要的影响,垃圾数据绝对产出不了好的结果,但是质量高的数据却可以弥补算法的软弱性。所以了解有关数据质量的相关问题。对于我们接下来使用的算法和关键,本文博主主要从以下几个方面讲述了有关数据清理的东西。Data Quality首先我们来看一下,什么样特质的数据可以被称为高质量的数据。Validity(有效性)我们使用的数据应该满足某些规则的约束:比如...原创 2019-03-10 12:19:33 · 508 阅读 · 0 评论 -
Apriori算法
背景在如今大数据的时代,我们可以获取到的数据量很大很大,但是更多情况下它们只是数据,存储在了某个地方。如何从中获取到一些有价值的东西,成为一个很迫切的需求。比如各大电商网站每天都会收集到很多用户大量的购物数据,如果从中能知道用户的购物习惯,就可以为他们推荐更合适的商品,从而提高收益;或是在线下的门店中,同样会收集到大量的购物信息,如果知道了大多数人购物的习惯(比如什么东西经常一起购买等),就可以...原创 2019-03-19 08:52:00 · 3162 阅读 · 0 评论 -
如何理解生成模型和判别模型
Generative vs. Discriminative Models直观上理解如何理解生成模型和判别模型呢,我们以生活中的一个实例来看一下,我们如何来判断一个人所讲的语言呢?如果我们详细的学习了所有的语言的相关内容,当听到一个人所讲的语言时,就可以决定它是属于哪一种,这样的做法就是生成式方法;而如果我们并没有仔细的学习每一门语言,只是学习了如何区分不同语言的方法,这样的做法就是判别式方法...原创 2019-04-11 00:50:01 · 2278 阅读 · 0 评论 -
贝叶斯信念网络
回顾贝叶斯定理贝叶斯定理是计算概率中很重要也是很常用的一个公式,它的形式如下:p(Yk∣X)=P(XYk)P(X)=P(Yk)p(X∣Yk)∑jP(Yj)P(X∣Yj)p(Y_{k}|X)=\frac{P(XY_{k})}{P(X)}=\frac{P(Y_{k})p(X|Y_{k})}{\sum_{j}P(Y_{j})P(X|Y_{j})}p(Yk∣X)=P(X)P(XYk)=∑...原创 2019-04-12 19:49:44 · 2489 阅读 · 0 评论 -
模型的偏差、方差分析
偏差和方差总览对于某个特定的模型来说,它的泛化误差(Generation Error)可以分为三部分:模型预测值的方差(variance)、预测值相对真实值的偏差(bias)、样本本身存在的噪声(noise),可以用下面的公式进行表示:E((y−f^(x))2)=σ2+Var[f^(x)]+(Bias[f^(x)])2E((y-\hat f(x))^2)=\sigma^2+Var[\ha...原创 2019-04-19 23:18:28 · 2842 阅读 · 0 评论 -
K-Means
背景http://s3.amazonaws.com/vspot_prod_images/uploads/group/image/45678/1045759400025.jpg在实际的生产生活中,当我们处理的数据集为D=(xi,yi)D=(x_{i},y_{i})D=(xi,yi)时,其中yiy_{i}yi为xix_{i}xi对应的类标签,我们可以使用有监督的学习算法训练一个模型,...原创 2019-05-24 19:34:33 · 763 阅读 · 0 评论 -
Numpy的基本操作
-- coding: utf-8 --导入库import numpy as np创建基本元素创建向量#行向量vector_row = np.array([1,2,3])#列向量vector_column = np.array([[1],[2],[3]])print("vector_column = \n",vector_column)print("vector_row ...原创 2019-04-06 10:57:26 · 243 阅读 · 0 评论 -
隐马尔科夫模型
今天学习了《统计学习分析》的第10章-隐马尔科夫模型,一堆公式看的云里雾里,虽然基本上都可以看明白,但为了理解的更深,还是看看别人已经总结好的文章比较好,省了时间,同时效果更好。下面贴出我看的几篇博客:如何通过一些简单的例子理解隐马尔科夫模型?如何用简单易懂的例子解释隐马尔可夫模型?如何从理论上理解隐马尔科夫模型的基本内容?智能算法之隐马尔可夫模型(HMM)隐马尔可夫模型隐马尔...原创 2018-11-30 19:46:13 · 224 阅读 · 0 评论 -
条件随机场
感性的理解条件随机场中文:如何轻松愉快地理解条件随机场(CRF)?英文原文:Introduction to Conditional Random Fields如何用简单易懂的例子解释条件随机场(CRF)模型?理论上学习条件随机场条件随机场-李航《统计学习分析第11章》看下上面的博客,单纯的对于条件随机场就会有一个初步的认识,但是要真正的将条件随机场和其他的相关算法进行一个深入的比较,以...原创 2018-12-04 10:51:33 · 160 阅读 · 0 评论 -
朴素贝叶斯(Naive Bayesian)
1. 引入朴素贝叶斯是一种经典的机器学习的分类算法,基本原理很简单,学过概率论和数理统计的应该很容易就可以理解看起来复杂的公式,没学过的查一下资料也很容易掌握,进而明白它背后的原理。分类问题是人们日常生活中一种最常见的问题,比如我们需要分辨不同的人、在买菜或买水果时要分辨不同的类别等等,很多时候我们是基于之前的经验进行分类,贝叶斯分类算法也是这样的原理。他根据已有的分好类的数据学习一个分类器,当...原创 2018-11-14 14:02:54 · 399 阅读 · 0 评论 -
模型评价的不同方式
模型评估与选择(中篇)-ROC曲线与AUC曲线原创 2018-09-07 08:59:53 · 607 阅读 · 0 评论 -
决策树(Decision Tree)算法探析
一、总览决策树是一种很常用也是很有效的分类和回归方法,属于有监督的学习,呈树形结构,其中每个内部节点表示在一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一个实例,它是以实例为基础的归纳学习。决策树学习采用的是自顶向下的递归方法,基本思想是以信息熵为度量构造一棵熵值下降最快的树,到叶子节点处的熵值为零,此时每个叶节点的实例都属于同一类。决策树的本质是从训练数据集中归纳出一组分...原创 2019-03-28 15:33:00 · 1277 阅读 · 0 评论 -
K近邻(k-nearest neighbor, KNN)
Python3《机器学习实战》学习笔记(一):k-近邻算法(史诗级干货长文)博主的这篇博文参考《机器学习实战》,内容详细,代码解释完整,学习KNN的可以看一下,所以自己就不重复造车轮了,哈哈,偷懒了!...原创 2018-08-18 20:54:28 · 863 阅读 · 0 评论 -
Logistic Regression
一、回顾前面学习了线性回归,在预测房屋价格的数据背景下,我们希望在现有的数据下找到一条很好的线来拟合,更好的对未来做预测。而在实际生活中,有些情况下,我们知道一个实例的很多特征,并不是希望找到一条拟合的直线或是曲线,而是回答类似于YES/NO的问题,例如: 如上表所示,我们希望研究影响一个人得某种疾病的相关因素,分别有X1、X2、X3三个特征值,1表示因素存在,0表示不存在;P=0表示不...原创 2018-08-12 08:08:39 · 352 阅读 · 0 评论 -
正则化+岭回归+Lasso回归
详解机器学习中的“正则化”(Regularization)在学习回归时,如果对于正则化的相关问题不清楚时,看看老师的这篇博客,肯定会受益匪浅的,强力推介!!!...转载 2018-08-11 15:31:16 · 836 阅读 · 0 评论 -
sklearn学习目录
原始目录网址:全栈:https://blog.csdn.net/luanpeng825485697?t=1python:https://blog.csdn.net/luanpeng825485697/article/details/78347433数据集:https://archive.ics.uci.edu/ml/index.phppython机器学习库sklearn教程https:/...转载 2018-12-13 16:52:55 · 216 阅读 · 0 评论 -
从零推导支持向量机(SVM)
转载 2019-02-22 16:44:16 · 1022 阅读 · 1 评论 -
重新理解梯度下降法(Gradient Descent)及其相关优化方法
梯度下降法广泛的应用在很多模型的无约束优化问题的求解中,比如线性回归、神经网络等等。之前在学习Stanford机器学习-Linear Regressioon with One Variable(3)时对于梯度下降有了初步的理解,但是对于梯度下降法的多种类型,以及背后的数学原理理解的并不是很清楚,希望通过这个专项的学习,对于梯度下降法可以有一个深入的学习。所需的数学知识对于其中涉及的导数、偏导数...原创 2019-03-24 21:42:53 · 1876 阅读 · 0 评论 -
学习矢量量化(Learning Vector Quantization, LVQ)
学习矢量量化(Learning Vector Quantization,LVQ),是一种用于模式分类的有监督的学习算法,也是一种结构简单、功能强大的有监督的神经网络分类算法。主要的类型有LVQ1、LVQ2、LVQ3,其中LVQ2的应用最广。基本思想它通过在自动学习的过程中进行及时的微调,使得每个类别的代表点贴近与最佳值,基本步骤如下所示:1. 设定每一个类别的代表点:假设有4个类别,每一个类...原创 2019-03-23 08:41:18 · 6001 阅读 · 1 评论 -
如何提高机器学习模型的可解释性
背景随着机器学习的发展,不同的算法纷纷涌现,特别是现在很热的深度学习,不同的神经网络模型在图像识别、语音识别、自然语言处理等方面都已经取得了一定的成果。但是模型的效果往往是以牺牲模型的可解释性为代价的,在深度学习中网络模型越来越复杂,导致了它的解释性很差,我们很难向不是太了解相关方面的人来解释清楚得到的结果。所以提高模型的可解释性,不仅可以让数据科学家更加深入的理解内部的工作原理,从而找到办法...原创 2019-03-22 16:57:15 · 4314 阅读 · 0 评论 -
小波变换(Wavelet Transform)
最近在学习数据挖掘的数据预处理一章中碰到了小波变换,之前并没有学习过有关信号处理的东西,所以参考网上的资料,对其做一个简单的了解,后面如果用得到,再做深入的学习。译自原文: http://ataspinar.com/2018/12/21/a-guide-for-using-the-wavelet-transform-in-machine-learning/在了解小波变换之前,我们先来看几个概念...原创 2019-03-13 16:12:21 · 37239 阅读 · 2 评论 -
主成分分析(Principal Component Analysis,PCA)
维度灾在学习PCA之前我们需要明白为什么要使用它?或者说为什么需要进行降维?首先我们需要了解一下什么是维度诅咒?维度诅咒是指当数据集的维度增加时,数据将变得极其稀疏,使得对于聚类、离群点分析等关心的关于两点的距离、密度等信息变得失去意义,而且子空间的组合也会呈指数增长。如果我们在一个单位平面(1*1的正方形)中随机选择一个点,它距离边界的距离小于0.001的概率只有大约0.4%;但是在一个1...原创 2019-03-17 17:50:36 · 3026 阅读 · 0 评论 -
奇异值分解(SVD)
在线性代数中我们都学习过,对于满秩的方阵,有Ax=λx成立,其中A是n*n的矩阵,λ是A的一个特征值,x为A对应λ的特征向量。根据求出的特征值和特征向量,我们就可以将矩阵A分解,将其表达为另一种形式。假设A求出的特征值为λ1≤ λ2 ≤ λ3≤…… ≤λn,而对应的特征向量为w1,w2,……,wn。如果特征向量间是线性无关的,则A可以表示为如下的形式其中W是n个特征向量所组成的nn的矩阵,∑是...原创 2019-03-16 23:26:43 · 396 阅读 · 0 评论 -
字典学习、稀疏表示
字典学习机器学习——字典学习/稀疏编码学习笔记Dictionary Learning(字典学习、稀疏表示以及其他)原创 2019-03-04 12:31:08 · 1172 阅读 · 0 评论 -
Linear Regression
断断续续的看了一些课程,一些书,对于机器学习的一些知识有了一个初步的熟悉,但感觉看完再想起来就没那么清楚了,所以希望还是自己坚持写一些东西,只当是自己所学的一个总结和回顾,日后有了更深的理解了也方便回过头来再看再完善。那就先从第一个最基本的算法学习吧,那就是线性回归(LinearRegression)。线性回归主要包括高斯分布、最大似然估计、最小二乘法、梯度下降等一些内容。之前自己写过的几篇相...原创 2018-08-11 10:05:58 · 485 阅读 · 0 评论