![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
机器学习
Day-yong
做好每一步,坚持到最后!!!
展开
-
【机器学习】机器学习项目全流程(附带项目实例)
前言 本篇主要是让大家熟悉机器学习实际项目中的全流程,并伴随案例讲解,通过让大家动手了解实际机器学习项目的大体流程,以及面对一些常见情况的处理方法编程环境:Anaconda3:juputer notebookPython3Pycharm1、相关名词(1)机器学习:致力于通过研究如何通过 计算的手段,利用 经验 来改善系统自身的 性能,是人工智能的核心技术;(2)深度学习...原创 2019-09-03 11:36:14 · 13468 阅读 · 5 评论 -
【机器学习】EM算法从小白到理解,附带案例代码
前言原创 2019-01-10 11:33:35 · 1447 阅读 · 0 评论 -
【机器学习】支持向量机详解,附带案例
回顾原创 2018-12-18 16:00:29 · 5186 阅读 · 1 评论 -
【机器学习】层次聚类、密度聚类以及谱聚类
前言K-means 聚类,介绍了 K-means 算法以及一些优化改进的算法,通过此了解聚类分析,接下来我们进一步的介绍聚类分析的其他方法。一、层次聚类\quad\quad层次聚类技术是第二类重要的聚类方法。层次聚类方法对给定的数据集进行层次的分解,直到满足某种条件为止,传统的层次聚类算法主要分为两大类算法:凝聚的层次聚类:AGNES算法(AGglomerative NESting) →...原创 2018-12-05 18:37:53 · 4159 阅读 · 3 评论 -
【机器学习】K-Means算法及多种优化改进算法,聚类模型评估,附带案例代码
一、聚类分析聚类分析是根据在数据中发现的描述对象(数据)及其关系的信息,将数据划分成有意义或有用的组(簇)。其目标是:组内的对象相互之间是相似的(相关的),而不同组中的对象是不同的(不相关的);组内的相似性(同质性)越大,组间差别越大,聚类就越好。聚类可以看作是一种分类,它用簇标号创建对象的标记。然而,只能从数据中导出这些标记,它与分类(例如分类决策树等)不同,分类是监督分类,即使用...原创 2018-12-04 20:01:35 · 20324 阅读 · 10 评论 -
【机器学习】一文理解集成学习Boosting思想之GBDT、XGBoost,附带案例
前言AdaBoost前面我们介绍了使用 Boosting 思想的 AdaBoost ,它是通过前一轮决策的结果来给样本设置权重,决策正确的权重减小,决策错误的权重增加;然后将加权后的数据集输入下一个弱学习器训练,直到达到训练停止条件。本篇将介绍 Boosting 的GBDT、XGBoostGBDT(Gradient Boosting Decison Tree)(梯度提升迭代决策树)别名:...原创 2018-11-29 23:56:29 · 715 阅读 · 0 评论 -
【机器学习】一文理解集成学习Boosting思想之AdaBoost,附带案例
一、Boosting(提升学习)随机森林在随机森林的构建过程中,由于各棵树之间是没有关系的,相对独立的;在构建的过程中,构建第m个子树的时候,不会考虑前面的m-1棵子树。那么:如果在构建第m棵子树的时候,考虑到前m-1棵子树的结果,会不会对最终结果产生有益的影响?各个决策树组成随机森林后,在形成最终结果的时候能不能给定一种既定的决策顺序呢?(也就是哪颗子树先进行决策、哪颗子树后进行...原创 2018-11-28 17:46:54 · 1105 阅读 · 1 评论 -
【机器学习】集成学习Bagging思想之随机森林(Random Forest)
一、集成学习(Ensemble Learning)\quad\quad当我们在做重要决定时,大家可能都会考虑吸取多个人而不只是一个人的意见。机器学习处理问题时,又何尝不是如此?集成学习的思想就是将若干个学习器(分类器&回归器)组合之后产生一个新学习器;一般结构如下:先产生一组“个体学习器”;再用某种策略将它们结合起来;最后通过“投票法”或者其他方法产生输出集成学习的...原创 2018-11-27 16:57:48 · 3296 阅读 · 0 评论 -
【机器学习】决策树剪枝优化及可视化
前言\quad\quad前面,我们介绍了分类决策树的实现,以及用 sklearn 库中的 DecisionTreeClassifier 和 DecisionTreeRegressor 类实现了分类决策树和回归决策树的一些案例。具体可见:分类决策树与回归决策树其中,我们也对决策树的不同深度对模型的欠拟合和过拟合的影响进行了比较。本篇源代码可见:Github一、欠拟合与过拟合\quad...原创 2018-11-26 15:03:53 · 2664 阅读 · 0 评论 -
【机器学习】分类决策树与回归决策树案例
一、回顾什么是决策树,信息熵构建决策树的过程ID3、C4.5和CRAT算法上面三篇,主要介绍了相关的理论知识,其中构建决策树的过程可以很好地帮助我们理解决策树的分裂属性的选择。二、决策树的Python实现...原创 2018-11-25 18:47:40 · 5603 阅读 · 3 评论 -
【机器学习】一文搞懂K近邻算法(KNN),附带多个实现案例
一、KNN回顾kkk近邻算法kkk 近邻学习是一种常用的监督学习方法,比如:判断一个人的人品,只需要观察与他来往最密切的几个人的人品好坏就可以得出,即“近朱者赤,近墨者黑”。理论/原理:“物以类聚,人以群分”相同/近似样本在样本空间中是比较接近的,所以可以使用和当前样本比较近的其他样本的目标属性值作为当前样本的预测值。kkk 近邻法的工作机制很简单:给定测试样本,基于某种距离度...原创 2018-11-24 20:48:36 · 7017 阅读 · 8 评论 -
【机器学习】线性回归算法的过拟合比较
回顾过拟合与欠拟合 主要介绍了什么是欠拟合什么是过拟合对抗过拟合 主要介绍了线性回归中对抗过拟合的方法,主要包括:L1-norm的LASSO回归、L2-norm的Ridge回归,此外还有一个没有提到,L1-norm和L2-norm结合的Elasitc Net(弹性网络)Ridge模型具有较高的准确性、鲁棒性以及稳定性;LASSO模型具有较高的求解速度;如果既要考虑稳定性也考虑求解的速...原创 2018-11-22 13:49:23 · 1362 阅读 · 0 评论 -
【机器学习】基于梯度下降法的自线性回归模型
回顾关于梯度下降法 以及线性回归的介绍,我们知道了:线性回归的损失函数为:J(θ)=12∑i=1m(hθ(x(i))−y(i))2J(\theta) = \frac{1}{2} \sum_{i=1}^m\Big(h_\theta(x^{(i)}) - y^{(i)}\Big)^2J(θ)=21i=1∑m(hθ(x(i))−y(i))2梯度下降法求解结果为:∂∂θjJ(θ)=(...原创 2018-11-22 13:18:10 · 911 阅读 · 0 评论 -
【机器学习】最小二乘法求解线性回归参数
回顾回归分析之线性回归 中我们得到了线性回归的损失函数为:J(θ)=12∑i=1m(hθ(x(i))−y(i))2J(\theta) = \frac{1}{2}\sum_{i=1}^m\bigg(h_\theta(x^{(i)}) - y^{(i)}\bigg)^2J(θ)=21i=1∑m(hθ(x(i))−y(i))2θ\thetaθ 的求解够将损失函数用向量的形式表示:J(...原创 2018-11-20 16:55:26 · 2712 阅读 · 0 评论 -
【机器学习】机器学习模型训练与测试评估
模型训练模型选择对于特定任务最优建模方法的选择或者对特定模型最佳参数的选择交叉验证在训练数据集上运行模型(算法)并且在测试数据集上测试效果,迭代 更新数据模型的修改,这种方式被称为“交叉验证”(将数据分为训练集 和 测试集),使用训练集构建模型,并使用测试集评估模型提供修改建议。模型的选择会尽可能多的选择算法进行执行,并比较每个算法的执行结果模型测试模型的测试一般从以下几...原创 2018-11-19 22:17:46 · 3381 阅读 · 0 评论 -
【机器学习】梯度下降法详解
一、导数导数 就是曲线的斜率,是曲线变化快慢的一个反应。二阶导数 是斜率变化的反应,表现曲线的 凹凸性y=f(x)y = f(x)y=f(x)y′=f′(x)=dydx=limΔx→0ΔyΔx=limΔx→0f(x0+Δx)−f(x0)Δxy' = f'(x) = \frac{dy}{dx}=\lim_{\Delta x \rightarrow ...原创 2018-11-18 23:00:00 · 1092 阅读 · 1 评论 -
【机器学习】EM算法在高斯混合模型学习中的应用
前言EM算法,此博客介绍了EMEMEM算法相关理论知识,看本篇博客前先熟悉EMEMEM算法。本篇博客打算先从单个高斯分布说起,然后推广到多个高斯混合起来,最后给出高斯混合模型参数求解过程。单个高斯分布假如我们有一些数据,这些数据来自同一个高斯分布(独立同分布),那个我们如何根据这些数据估计出这个高斯分布的参数呢?我们知道只要知道高斯分布的参数θ={μ,σ2}θ={μ,σ2}\t...原创 2018-09-15 18:21:54 · 1345 阅读 · 0 评论 -
【机器学习】EM算法
前言EMEMEM算法是一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计,或极大后验概率估计。EMEMEM算法的每次迭代由两步组成:EEE步:求期望MMM步:求极大EMEMEM算法引入首先介绍一个使用EMEMEM算法的例子:三硬币模型 假设有3枚硬币,分别记作A,B,CA,B,CA,B,C,这些硬币正面出现的概率分别是π,p,qπ,p,q\pi,p,q,进行...原创 2018-09-15 15:59:28 · 677 阅读 · 0 评论 -
【机器学习】AdaBoost算法Python实现
回顾集成学习,这里我们先介绍了集成学习的相关知识,集成学习就是通过构建并结合多个学习器来完成学习任务。 然后根据个体学习器的生成方式,介绍了集成学习方法两大类:个体学习器间存在强依赖关系,必须串行生成的序列化方法,代表是:Boosting个体学习器间不存在强依赖关系,可同时生成的并列化方法,代表是:Bagging和随机森林(Random Forest)AdaBoost算法,这里我...原创 2018-08-25 17:28:15 · 2785 阅读 · 2 评论 -
【机器学习】提升方法AdaBoost算法
前言此博客介绍了关于集成学习的相关知识,在学习AdaBoostAdaBoostAdaBoost算法前,可以先了解下集成学习。提升(Boosting)方法是一种常用的统计学习方法,应用广泛且有效。在分类问题中,它通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提高分类的性能。 提升方法基于这样一种思想: 对于一个复杂任务来说,将多个专家的判断进行适当的综合所...原创 2018-08-21 22:22:16 · 394 阅读 · 0 评论 -
【机器学习】快速理解集成学习(Ensemble Learning)
前言当我们在做重要决定时,大家可能都会考虑吸取多个专家而不只是一个人的意见。机器学习处理问题时,又何尝不是如此?集成学习集成学习就是通过构建并结合多个学习器来完成学习任务。 上图显示了集成学习的一般结构:先产生一组“个体学习器”;再用某种策略将它们结合起来;通过“投票法”产生输出。 以上结构中,设计的问题有: 1. 选择什么样子的个体学习器才能使...原创 2018-08-21 16:18:49 · 999 阅读 · 0 评论 -
【机器学习】朴素贝叶斯法(2)——案例:垃圾邮件分类
前言此文介绍了朴素贝叶斯的相关理论,如果理论知识还没能很好的掌握,我们可以通过代码来进一步理解。在我们进行垃圾文件分类前,我们先思考一个问题:我们知道,朴素贝叶斯是基于概率论的,那么对于一个纯文本的邮件,我们该如何计算相关概率呢?我们需要先从文本中获取特征,然后将每一个文本片段表示为一个词条向量,用1表示出现在文档中,用0表示未出现,这样就可以将一个纯文本的文档转换为一个数字向量,基于...原创 2018-08-09 13:33:18 · 2608 阅读 · 2 评论 -
【机器学习】朴素贝叶斯法(1)——理论
前言朴素贝叶斯法(naive Bayes)是基于贝叶斯定理与特征条件独立假设的分类方法。对于给定的训练数据集,首先基于特征条件独立假设学习输入/输出的联合概率分布;然后基于此模型,对于给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。 概率:事件发生的可能性,比如抛一枚硬币,正面向上的可能性有50%,掷色子点数为6的可能性为1/6。我们用符号表示为P(A)P(A)P(A) ...原创 2018-08-08 10:32:43 · 946 阅读 · 0 评论 -
【机器学习】支持向量机(7)——手写数字识别案例
前言之前我们用 kkk-近邻算法(kNNkNNkNN)实现了手写数字识别系统,博客链接从上面的案例中,我们可知使用kNNkNNkNN方法的效果不错,但是需要保留所有的训练样本。而对于支持向量机来说,其需要保留的样本少了很多(只需要保留支持向量),但能获得可比的效果。 说明: 这里我们只考虑SVMSVMSVM的二分类问题,所以我们只使用了手写数字识别数据集中的1和9数据; ...原创 2018-08-02 12:13:53 · 3521 阅读 · 0 评论 -
【机器学习】支持向量机(6)——SMO算法Python代码实现
前言此文介绍了SMOSMOSMO算法,以及前面我们介绍了支持向量机的理论,下面我们就该通过代码来实现了。由于SMOSMOSMO算法不易于理解,为了让大家正确理解它的工作流程,我们先从简化版的SMOSMOSMO算法开始讨论。应用简化版SMOSMOSMO算法处理小规模数据集通过之前的学习,我们知道SMOSMOSMO算法中的外循环确定要优化的αα\alpha,而简化版的会跳过这一部分,首...原创 2018-08-01 16:06:29 · 4087 阅读 · 6 评论 -
【机器学习】支持向量机(5)——SMO算法
前言通过前几篇博客的介绍,相信大家已经对支持向量机有了一定的了解,我们知道,支持向量机的学习问题可以形式化为求解凸二次规划问题。minα12∑i=1N∑j=1NαiαjyiyjK(xi,xj)−∑i=1Nαis.t.∑i=1Nαiyi=00⩽αi⩽C,i=1,2,...,Nminα12∑i=1N∑j=1NαiαjyiyjK(xi,xj)−∑i=1Nαis.t.∑i=1Nαiyi=00⩽...原创 2018-08-01 14:26:57 · 628 阅读 · 0 评论 -
【机器学习】支持向量机(4)——非线性支持向量机(核函数)
前言当训练数据集线性可分或者近似线性可分时,前面我们在文一以及文二已经介绍了线性可分支持向量机和线性支持向量机。但是有时训练数据集是非线性的,这时就可以使用非线性支持向量机。非线性支持向量机的主要特点就是利用了核技巧。非线性分类问题 如上面左图,是一个分类问题,图中实心点为正类,空心点为负类;我们很容易看出,无法用直线(线性模型)将正负实例正确分开,但是可以通过椭圆曲线(...原创 2018-07-30 19:37:13 · 4130 阅读 · 0 评论 -
【机器学习】支持向量机(3)——线性支持向量机(软间隔最大化,对偶算法)
前言此文介绍了线性可分支持向量机的硬间隔最大化以及它的对偶算法,很好的理解线性可分支持向量机是理解线性支持向量机的基础,只要理解前面的,后面的就会很容易理解。首先,前面我们所讨论的都是基于线性可分的训练数据集,但在现实任务中,我们得到的一般都不是线性可分的,这是线性可分支持向量机就不适用了。因为这时我们之前所提到的不等式约束并不能都成立。缓解该问题的一个办法就是允许支持向量机在一些样本...原创 2018-07-28 19:07:12 · 1776 阅读 · 0 评论 -
【机器学习】支持向量机(2)——线性可分支持向量机(硬间隔最大化法,对偶算法)
前言此文中我们介绍了支持向量机用到的一些概念以及求解方法,接下来我们将分别介绍线性可分支持向量机、线性支持向量机以及非线性支持向量机。首先,我们考虑一个二类分类问题,假设输入空间与特征空间为两个不同的空间。输入空间为欧氏空间或离散集合,特征空间为欧氏空间或希尔伯特空间。线性可分支持向量机、线性支持向量机假设这两个空间的元素一一对应,并将输入空间中的输入映射为特征空间中的特征向量。非线性支持...原创 2018-07-28 16:41:30 · 3218 阅读 · 2 评论 -
【机器学习】支持向量机(1)——基础知识
前言本篇主要介绍一些支持向量机用到的概念,这些是学习支持向量机算法的基础,以便更好的理解算法的求解方法。划分超平面首先,我们先看看下图: 假定给定数据如上图,圆的为正类,方的为负类,要想通过一个划分超平面(这里是二维,所以是条直线)将不同类别的样本分开。从图中我们就可以看出,能将训练样本分开的划分超平面可能有很多,但是我们应该去选择哪一个呢?直观上,我们应该选择中间红色的...原创 2018-07-27 19:06:04 · 1357 阅读 · 0 评论 -
【机器学习】k-近邻算法案例——约会网站的配对效果、手写数字识别系统
约会网站的配对效果案例简介某人在约会网站上寻找适合自己的对象,约会网站会推荐不同的人选,经过一番总结,发现这些人大致可以分为三类:不喜欢的人、魅力一般的人、极具魅力的人但是,约会网址推荐的人选仍然不能归入到恰当的类别中。这时就希望有个分类软件可以更好地帮助她将推荐的对象划分到确切的分类中,于是收集了一些网站未曾记录的数据信息,她认为这些数据更有助于推荐对象的归类。数据导入数据文件:...原创 2018-07-25 15:43:31 · 1911 阅读 · 2 评论 -
【机器学习】k-近邻算法Python3代码实现
概述kkk 近邻法的工作机制很简单:给定测试样本,基于某种距离度量找出训练集中与其最靠近的kkk 个训练样本,然后基于这kkk 个“邻居”的信息来进行预测。简单地说,kkk -近邻算法采用测量不同特征值之间的距离的方法进行分类kkk -近邻算法: 优点:精度高、对异常值不敏感、无数据输入假定 缺点:计算复杂度高、空间复杂度高 适用数据范围:数值型、标称型我们来...原创 2018-07-25 14:23:34 · 560 阅读 · 0 评论 -
【机器学习】k-近邻算法——距离度量、k值选择以及分类决策规则
回顾k-近邻算法前面,我们介绍了kkk-近邻算法,其工作机制就是给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个训练样本,然后基于这k个“邻居”的信息来进行预测。kkk近邻法会涉及到三个问题(三要素):距离度量、kkk值的选择、分类决策规则,下面我们分别介绍。距离度量特征空间的两个实例点的距离度量是两个实例点相似程度的反映。距离小,那么相似度大;距离大,那么相似度小。...原创 2018-07-24 09:24:27 · 13300 阅读 · 0 评论 -
【机器学习】k-近邻算法(k-nearest neighbor, k-NN)
前言kkk近邻学习是一种常用的监督学习方法。kkk近邻法的输入为实例的特征向量,对应于特征空间的点;输出为实例的类别,可以取多类。kkk近邻法的工作机制很简单:给定测试样本,基于某种距离度量(关于距离度量,在以后的博客中会给出多种距离度量方法)找出训练集中与其最靠近的kkk个训练样本,然后基于这kkk个“邻居”的信息来进行预测。分类时,对新的实例,根据其kkk个最邻近的训练实例的类...原创 2018-07-18 20:24:20 · 1303 阅读 · 0 评论 -
【机器学习】感知机Python代码实现
回顾感知机前面我们介绍了感知机,它是一个二分类的线性分类器,输入为特征向量,输出为实例的类别。感知机算法利用随机梯度下降法对基于误分类的损失函数进行最优化求解,得到感知机模型,即求解w,bw,bw,b。感知机算法简单易于实现,那么我们如何通过python代码来实现呢?接下来我们通过对我们给定的数据进行训练,得到最终的w,bw,bw,b,并将其可视化。Python实现impo...原创 2018-07-13 15:15:48 · 12912 阅读 · 7 评论 -
【机器学习】感知机
介绍感知机1957年由Rosenblatt提出,是神经网络与支持向量机的基础,是二分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,去+1和-1二值。感知机属于判别模型,旨在求出将训练数据进行线性划分的分离超平面。感知机模型的求得是基于误分类的损失函数,利用梯度下降法对损失函数进行极小化。感知机学习算法简单易于实现。感知机模型由输入空间到输出空间如下函数: ...原创 2018-07-13 14:45:51 · 1203 阅读 · 0 评论 -
【机器学习】决策树(四)——python实现
前言分类决策树模型是表示基于特征对实例进行分类的树形结构。之前的博客也对决策树的定义,构造过程以及相关算法进行了详细介绍。决策树学习算法包括三个部分:特征选择、树的生成和树的剪枝。特征选择的目的在于选取对训练数据能够分类的特征,ID3使用信息增益,C4.5使用信息增益比,CART使用基尼指数。决策树的优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以不处理不相...原创 2018-07-12 15:36:51 · 562 阅读 · 0 评论 -
【机器学习】决策树(三)——生成算法(ID3、C4.5与CRAT)
回顾简单理解决策树 通过例子理解决策树构建过程前面我们介绍了决策树的特征选择,以及根据信息增益构建决策树。那么决策树的生成又有哪些经典算法呢?本篇将主要介绍ID3的生成算法,然后介绍C4.5中的生成算法。最后简单介绍CRAT算法。ID3算法前面我们提到,一般而言,信息增益越大,则意味着使用该属性来进行划分所获得的“纯度”提升就越大。因此,我们可以用信息增益来进行决策树的划分属...原创 2018-06-22 00:26:26 · 2229 阅读 · 0 评论 -
【机器学习】决策树(二)——通过例子理解构建过程
回顾简单理解决策树前面我们简单介绍了决策树,以及信息熵和条件熵的概念。提到构建决策树的过程,那么我们是如何根据特征来构建决策树的呢?决策树的构建过程决策树算法的重点就是决策树的构造;决策树的构造就是进行属性选择度量确定各个特征之间的树结构;构建决策树的关键步骤就是分裂属性,分裂属性就是让各个分裂子集尽可能的“纯”(让一个分裂子类中待分类的项尽可能的属于同一个类别)构建步骤如下:...原创 2018-06-20 17:17:19 · 5217 阅读 · 2 评论 -
【机器学习】决策树(一)——简单理解决策树
思考什么是决策树?信息熵概念?1. 什么是决策树?决策树(Decision Tree)是一种基本的分类和回归的方法。本篇主要讨论用于分类的决策树。分类决策树模型是一种描述对实例进行分类的树形结构。决策树由结点(node)和有向边(directed edge)组成。结点有两种形式:内部结点和叶节点。内部结点:表示一个特征或属性 叶节点:表示一个类1.1 决策树直观理解...原创 2018-06-19 23:24:43 · 1752 阅读 · 0 评论