正则表达式入门 正则表达式在平时处理文本内容的时候有很大用处,这里就简单的总结一下正则表达式的用法。一、元字符在学习正则表达式的时候,首先要了解正则里的一些基本符号。首先是表示一些单字符。 . 任意字符(除换行符外) \d 任意数字 \D 任意非数字 \w 任意字母数字下划线 \W 任意非字母数字下划线 \s 任意空白符 \S 任意非空白符 有了单字符之后,需要匹配单字符出现的次数,也就是量词。* 表示0到多次 + 表示1...
机器学习/深度学习/强化学习资料汇总 去年3月份开始学习机器学习开始,7月份学习深度学习、强化学习,经过一年多的学习终于算勉强入门。把自己搜集到的一些书籍和不错的视频推荐给大家,希望帮助大家快速入门AI,同时也是作为自己学习的一个阶段性总结。一、机器学习1.1 书籍类1.周志华-西瓜书(链接:https://pan.baidu.com/s/1wE07V3XeWuUqSJvhXrK9qQ提取码:phbl)2.李航-统计...
概率图-精确推理-变量消除法(Variable Elimination) 一、推理问题简介推理问题是概率图模型的核心,分为精确推理和近似推理。推理问题可以分为3类:1>求边缘概率:2>求条件概率:3>求MAP:二、变量消除法简介变量消除法的思想很简单,就是对联合概率不断求和消除其中的变量,最后得到边缘分布。如上图所示,首先对联合概率来说,先把b消元,得到中间只含a和c的表,然后对c进行求和,得到最后只含有a的概率表,对这...
神经网络-3比特异或实现 一、问题描述想要实现3个比特的异或问题,即形式如下010和011的异或结果为0010 100 110 0 1二、数据处理首先,完成数据集的制作,输入为6位,输出为3位。import numpy as npa = np.array([[0,0,0],[0,0,1],[0,1,0],[0,1,1],[1,0,0],[1,0,1],[1,1,0],[1,1,1]])...
BP神经网络 一、神经网络简介神经网络的发展可以说一波三折,神经网络的前身感知机算法因为无法解决异或问题,而被明斯基批判,导致神经网络研究的衰退,后来多层感知机和BP算法的提出,让神经网络的研究得到了一定发展,可惜由于算力不够,加上同期SVM,集成方法的成功,导致研究又陷入了低谷,而后Hinton在06年提出深度学习,把神经网络又重新拉回了大家的视野,进而16年AlphaGo的成功,开启了一个新的时代-深度...
概率图-表示-贝叶斯网络 一、贝叶斯网例子贝叶斯网是一种经典的概率图模型,它利用有向无环图来刻画属性之间的依赖关系。首先来看一个的例子,一个学生想要请求教授为其写一封推荐信,推荐信的质量用变量L表示,取值范围为{是,否}。而教授健忘不知道这个学生的名字,所以要查看学生的成绩来确定是否为其写推荐信。学生成绩的取值范围为{A,B,C},分别对应于g1,g2,g3,而考试的成绩和试题的难度还有智商有关系,他们的取值范围都...
DBSCAN算法 一、DBSCAN算法概念介绍DBSCAN算法是密度聚类算法,所谓密度聚类算法就是说这个算法是,根据样本的紧密程度来进行聚类。下面来介绍一些DBSCAN中的概念。要根据样本中的数据密度进行聚类,首先定义样本中数据密度大的地方应该怎样表示,很直观的想法就是如果A样本周围有5个样本,那么我们认为A样本是密度很高的。那你可能会说,为啥不是10个呢,周围是离A样本多远啊。这两个是我们算法中要调整的超...
层次聚类 一、层次聚类定义每一种聚类方法都有其特定的数据结构,对于服从高斯分布的数据用K-Means来进行聚类效果会比较好。而对于类别之间存在层结构的数据,用层次聚类会比较好。例如,要把所有的大学专业进行分类,这很明显是一个带有层次结构的分类,计算机科学与技术,物联网工程,网络工程等等,可以看成计算机学科,而计算机学科,机械等又可以看成工科专业。最终所有的学科会划分成13个学科门类。而实现层次聚类会...
最大熵模型 一、最大熵模型的理解最大熵模型是由最大熵原理推导而来的,最大熵原理认为在所有可能的概率模型中,熵最大的模型是最好的模型。即在满足约束条件的情况下,所有变量的取值都是等可能的。假设有如下的离散分布:x 1 2 ...... k p p1 p2 ...... pk 现在利用最大熵原理,证明熵最大的...
pandas常见用法 pandas在kaggle比赛中比较常见,基本上所有的数据都会读入pandas,然后在pandas里面进行各种特征工程,包括特征筛选,特征组合等等。下面列出常见的pandas用法。目录一、数据的读取与保存二、DataFrame中的列对象-Series2.1 Series对象的创建 2.2 Series对象的一些属性和...
numpy常见用法 目录一、numpy数组的创建1.1 手动创建1.2 调用numpy函数创建1.3 创建连续数组二、numpy数据类型以及本身操作2.1 numpy的数据类型及转换2.2 numpy数组的shape即转换三、取numpy数组中的值3.1切片索引3.2布尔索引3.3 花式索引四、numpy数组的计算4.1 numpy数组本身的计算4.2 与其...
kaggle比赛-House Prices:baseline-v1 学完机器学习的基本算法之后,想找一个实践的机会。于是就瞄准了kaggle比赛,先从最基本的房价预测开始,这是一个比较简单的比赛。一、赛题分析训练集数据是1460x81的数据,其中1460是数据条数,80列是有关房价的特征,1列是房价。测试集数据是1459x80的数据,其中1459是数据条数,80列是有关房价的特征,没有房价的标签从数据集的分布来看,标签是一个连续值,这是一个回归的问...
线性回归-波士顿房价预测 这篇文章介绍用线性回归解决波士顿房价的预测问题,线性回归的原理部分参见线性回归博客。一、了解数据首先导入需要的包import numpy as npimport matplotlib.pyplot as pltimport pandas as pdimport seaborn as snsfrom sklearn.datasets import load_bostonfro...
高斯分布 高斯分布在整个机器学习中都频繁出现,比如,在一开始学习线性回归的时候,在涉及到他的概率解释的时候,假设噪声服从高斯分布。在高斯混合模型(GMM),高斯判别分析(LDA)等等中,都涉及到了高斯分布,所以这里结合CS229课程笔记和机器学习-白板推导(二)-数学基础来对高斯分布进行一个介绍。一、一维高斯分布一维高斯分布的概率密度函数如下:下面是均值为0,方差为1的高斯分布图像:...
主成分分析【PCA】 一、背景在讲PCA之间,我们先来讨论一下过拟合的问题。通常遇到过拟合,会有两种方式解决。增加训练的数据、正则化。在数据很难增加的情况下,我们一般采取正则化来避免过拟合。但除了正则化之外,我们也可以采取降维的方式来解决这个问题。下面是解决过拟合的方式。为什么降维可以解决过拟合的问题?在我们通常收集的数据中,有很多特征是可以由其他特征推测出来,或者两个特征其实是描述的同一件事情。比如,...
K均值算法【K-means】 一、K-Means算法流程K均值算法是学习无监督学习的第一个算法,这个算法理解和实现都比较简单,算法的目的是将数据分成K组。为了达到这个目的,算法首先随机初始化k个数据点(聚类中心),然后遍历所有数据,计算出每一个数据到k个点的距离,找到最小的距离,则该点属于这个类。之后计算每一组中的平均值,然后更新聚类中心,直到中心点不再发生变化。下面是算法的运行过程:输入:没有标签的数据X,...
贝叶斯线性回归 一、贝叶斯线性回归框架二、贝叶斯线性回归详细介绍首先介绍Inference,求出后验概率。下面是推断的部分:给定X,求出Y万分感谢下面的参考资料,这个系列真的帮我理解了很多算法,建议大家看看。参考资料:机器学习-白板推导系列-贝叶斯线性回归...
指数分布族 我们都知道logistic回归,softmax回归,线性回归,他们看上去不一样但是他们都属于广义线性模型【Generalized Linear Mode】。这篇博客就来介绍他们。要介绍广义线性模型前,首先介绍指数分布族。一、指数分布族【The exponential family】指数分布族具有如下形式:下面是对指数分布族的一些理解:下面列出怎么求解参数二、最大熵的...
线性判别分析【LDA】 LDA线性判别的思想很简单,把训练集样本投影到一条直线上,使得同类样本的投影点尽可能近,不同类样本点的距离尽可能远。即类内小,类间大。一、LDA模型定义下面我们把类内小,类间大这种思想转化为数学表达式:上面的式子不容易求解,需要对上面的式子做化简。二、LDA模型求解2.1 求解方式12.2 求解方式2上面的方法可能理解起来比较困难,下面是西瓜书和Jerr...