- 博客(13)
- 资源 (18)
- 问答 (4)
- 收藏
- 关注
原创 Kmeans聚类算法求解与实现
在上一篇文章中,笔者介绍了KmeansKmeansKmeans聚类算法的主要思想与原理,并且还得到了其对应的目标函数。在接下来的这篇文章中笔者就开始介绍KmeansKmeansKmeans聚类算法的求解过程,以及其对应的代码实现。跟我一起机器学习系列文章将首发于公众号:月来客栈,欢迎文末扫码关注!1 目标函数求解由上一篇文章的内容可知,KmeansKmeansKmeans聚类算法的目标函数如下所示:P(U,Z)=∑p=1k∑i=1nuip∑j=1m(xij−zpj)2(1)P(U,Z)=\sum_
2020-06-29 09:09:12 1143
原创 没有你看不懂的Kmeans聚类算法
1 引例经过前面一些列的介绍,我们已经接触到了多种回归和分类算法。并且这些算法有一个共同的特点,那就是它们都是有监督的(supervised)学习任务。接下来,笔者就开始向大家介绍一种无监督的(unsupervised) 经典机器学习算法——聚类。同时,由于笔者仅仅只是对Kmeans框架下的聚类算法较为熟悉,因此在后续的几篇文章中笔者将只会介绍Kmeans框架下的聚类算法,包括:Kmeans、Kmeans++和WKmeans。在正式介绍聚类之前我们先从感性上认识一下什么是聚类。聚类的核心思想就是将具有相
2020-06-23 09:08:38 1402
原创 SVM之目标函数求解
经过前面几篇文章的介绍,我们知道了支持向量机背后的原理。同时,为了求解SVM中的目标函数,我们还在前面两篇文章中陆续介绍了拉格朗日乘数法和对偶性问题。接下来,在这篇文章中将开始正式介绍SVM的求解过程。1 构造广义拉格朗日函数L(w,b,α)\mathcal{L}(w,b,\alpha)L(w,b,α)由 前文可知SVM最终的优化目标为:minw,b12∣∣w∣∣2s.t. y(i)(wTx(i)+b)≥1,i=1,2,...m(1)\begin{aligned}&\min_{w,
2020-06-20 09:21:18 903
原创 对偶性与KKT条件
在**上一篇文章中,笔者介绍了什么是拉格朗日乘数法以及它的作用。同时在那篇文章中笔者还特意说到,拉格朗日乘数法只能用来求解等式约束条件下**的极值。但是当约束条件为不等式的时候我们又该如何求解呢?1 广义拉格朗日乘数法由拉格朗日乘数法可知,对于如下等式条件的约束问题minw f(w)s.t. hi(w)=0,i=1,⋯ ,l.(1)\begin{aligned}\min_{w} \;\;\;f(w)&\\s.t. \;\;\;h_i(w)&=0,i=1, \
2020-06-18 09:37:17 833
原创 好久不见的拉格朗日乘数法
1 引例我想大多数人对于朗格朗日乘数法的学习已经是好多年前的事情,其中的细节也自然是慢慢模糊了起来,但是对于它的作用我想几乎是不会忘记的,那就是用来求解条件极值。既然大多数人的记忆都停留在这个地方,那么我们就从这个开始重新拾起拉格朗日乘数法。下面就以一个例题来重温一下求解过程:求解目标函数z=xyz=xyz=xy在约束条件下x+y=1x+y=1x+y=1的条件极值。解:作拉格朗日函数F(x,y,λ)=xy+λ(x+y−1)(1)F(x,y,\lambda)=xy+\lambda(x+y-1)\ta
2020-06-18 09:33:20 1960
原创 SVM之软间隔最大化
跟我一起机器学习系列文章将首发于公众号:月来客栈,欢迎文末扫码关注!在前面几篇文章中,笔者分别介绍了什么是支持向量机以及如何通过sklearn来完成一个简单的SVM建模;接着还介绍了什么是线性不可分与核函数。在接下来的这篇文章中,笔者将继续介绍SVM中的软间隔与sklearn相关SVM模型的实现。1 什么是软间隔我们之前谈到过两种情况下的分类:一种是直接线性可分的;另外一种是通过ϕ(x)\phi(x)ϕ(x)映射到高维空间之后“线性可分”的。为什么后面这个“线性可分”要加上引号呢?这是因为在 上一篇文
2020-06-16 09:23:45 557
原创 SVM之线性不可分与核技巧
跟我一起机器学习系列文章将首发于公众号:月来客栈,欢迎文末扫码关注!在前面两篇文章中,笔者通过两个角度来介绍了什么是支持向量机。不过说一千道一万,还是不如动手来做做。在本篇文章中,笔者将首先介绍如何通过sklearn来搭建相应的SVM分类模型,然后将接着介绍如何处理SVM中的线性不可分问题。1 SVM建模1.1 API介绍在sklearn中,我们通过from sklearn.svm import SVC这句代码就能够导入SVM分类模型了。有人可能会觉得奇怪,为什么导入的是一个叫SVC的东西?这是因为
2020-06-13 11:00:28 1313
原创 从另一个角度看支持向量机
跟我一起机器学习系列文章将首发于公众号:月来客栈,欢迎文末扫码关注!在上一篇文章中,笔者介绍了什么是支持向量机以及如何来建模对应的优化问题,且同时那也是一种主流的理解支持向量机的视角。下面,笔者再来从另外一个角度来介绍什么是支持向量机。这两种理解支持向量机的方法有着截然不同的切入点,因此可以一起阅读以便对支持向量机有着更好的理解。1 什么是支持向量机SVM的全称是Support Vector Machine,即支持向量机。SVM主要也是用于解决分类问题的一个算法模型,属于有监督学习算法的一种。同时,S
2020-06-11 08:18:04 424
原创 原来这就是支持向量机
跟我一起机器学习系列文章将首发于公众号:月来客栈,欢迎文末扫码关注!在前面一系列的文章中,我们已经学习了多种分类算法模型,对于机器学习算是有了一定的了解。在接下来的几篇文章中,我们将开始逐步介绍《跟我一起机器学习》中的最后一个分类模型——支持向量机。**支持向量机(Support Vector Machine)**可以算得上是机器学习算法中最经典的模型之一。之所以称之为经典是因为其有着近乎完美的数学推导与证明,同时也正是因为这个原因,使得其求解过程有着很高的数学门槛。因此,对于接下来的内容,笔者也仅仅只会
2020-06-08 15:51:44 709 1
原创 泰坦尼克号沉船生还预测
在前面的几篇文章中,笔者陆续介绍了几种决策树的生成算法以及常见的集成模型。接下来在这篇文章中,笔者将以泰坦尼克号生还预测(分类)为例来进行实战演示;并且还会介绍相关的数据预处理方法,例如缺失值填充和类型特征转换等。1 数据集预处理我们本次用到的数据集为泰坦尼克号生还预测数据集(公众号回复”数据集“即可获取),原始数据集一共包含891个样本,12个特征维度。但是需要注意的是,这12个特征维度不一定都会用到,我们只选择我们认为有用的就行;同时存在一些样本的某些特征维度出现缺失值的状况,因此我们需要对其进行填
2020-06-05 18:33:47 1053 2
原创 随机森林在sklearn中的使用
在上一篇文章中,笔者介绍了常见集成模型的主要思想,并且还提到随机森林是使用最为广泛的集成模型之一。因此在本篇文章中,笔者将会再次就随机森林的其它应用以及其在sklearn中的具体用法进行介绍。1 API介绍在上一篇文章中,我们介绍了随机森林的基本原理,但并没有对其的具体用法做出详细的示例。接下来,我们就对其在sklearn[1]中的具体用法进行介绍。打开sklearn中关于随机森林的定义可以发现:A random forest classifier.A random forest is a me
2020-06-04 10:19:37 808
原创 集成模型:Bagging、Boosting和Stacking
跟我一起机器学习系列文章将首发于公众号:月来客栈,欢迎文末扫码关注!1 引例通过前面几篇文章的学习,我们已经了解了机器学习中的多种分类和回归模型。那现在有一个问题就是,哪一个模型最好呢?以分类任务为例,当我们拿到一个需要进行分类的任务时,如果是你你会选择哪种模型进行建模呢?一个狡猾的办法就是挨个都试一下,那这样做有没有道理呢?还别说,我们在实际的情况中真的可能会都去试一下,因为在没有实验之前谁都不会知道真正的结果。假如现在我们对A、C、D这三个模型进行建模,最后得到结果是:A的分类准确率为0.93,B的
2020-06-03 08:24:18 2852
原创 决策树的生成与剪枝CART
跟我一起机器学习系列文章将首发于公众号:月来客栈,欢迎文末扫码关注!在之前的一篇文章中,笔者分别介绍了用ID3和C4.5这两种算法来生成决策树。其中ID3算法每次用信息增益最大的特征来划分数据集,C4.5算法每次用信息增益比最大的特征来划分数据集。接下来,我们再来看另外一种采用基尼指数为标准的划分方法,CART算法。1 CART算法分类与回归算法(Classification and Regression Tree,CAR),即可以用于分类也可以用于回归,它是应用最为广泛的决策树学习方法之一。CART
2020-06-02 08:27:27 510
神经网络与深度学习
2017-09-24
deeplearning
2017-09-10
Dell inspiron 15r 5537安装Ubuntu 开机提示低显卡模式?
2015-06-05
Linux 中,普通用户获得临时root 之后,是否和超级用户一样?
2015-06-04
C语言关于char分配内存的问题
2015-06-04
C++中,定义的数组怎么由输入来确定维度
2014-12-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人