![](https://img-blog.csdnimg.cn/20200529151540530.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
跟我一起机器学习
本专栏将包含多个机器学习算法的入门介绍与讲解,包括但不限于:逻辑回归、K近邻、朴素贝叶斯、决策树、聚类算法等!
空字符(公众号:月来客栈)
Talk is cheap, show me your code.
展开
-
我开源了这份超十万字200多页的机器学习笔记
为什么会有这份笔记记得笔者大约是在三年前开始接触机器学习,也正是在那个时间附近件,笔者越发的认为“要想学得好,笔记不能少”。于是,在这之后笔者每每学完一个新的知识点都会选择将它记录下来。慢慢的,不知不觉就记录近200篇博客,内容从机器学习到深度学习、从编程语言到开源框架等,只要是接触过的笔者都会选择将它给记录下来。在记录的过程中,笔者都会将看到的各种资料以笔者自己的思维方式从头梳理一遍再形成笔记。这样做的好处就是能够使得这些知识点能够与自己脑中固有的知识结构更好的进行融合。不过遗憾的是,对于大多数人来.原创 2020-11-17 12:16:14 · 395 阅读 · 1 评论 -
听说你还在使用破解版Pycharm?
1 引言在用python做编码的过程中大多数人都会选择Pycharm来作为IDE使用,并且免费的教育版和社区版几乎就能满足满足绝大多数情况下的需求。但是,通常来说我们都需要快捷的将本地代码部署到服务器上进行实验,而连接服务器这一功能又恰好只对专业版开放。因此,对于专业版的破解就显得尤为必要。笔者之前也是一直使用破解版的Pycharm,最近一次配置破解文件大约还是在5月份的时候,并且破解成功后的过期时间显示为2099年。不过就在上个月突然失效了,导致在一个月的试用期后就无法使用了。此时笔者又开始在网上找破原创 2020-08-28 08:20:05 · 4779 阅读 · 0 评论 -
如何用聚类的思想做预测
1 前言这段时间不断收到有人私信问没有标签的数据集怎么做预测,因此在这篇文章中笔者就来简单说说处理这类问题方法。在正式解决这个问题我们先来探究一下他们为什么会这么问呢?仔细想想问题应该是出在“没有标签”上,试想一下如果是一个有标签数据集,那么肯定不会有人这么问。因此,这个问题其实就变成了无监督学习如何做预测。同时,这类问题的应用场景通常是需要对不含标签的数据进行划分,例如需要划分成多个等级;然后再将新输入的样本划分到对应的簇(等级)中。所有,大多数时候我们需要解决的都是如何用聚类来做预测。在前两天,一位原创 2020-07-08 22:58:25 · 3563 阅读 · 0 评论 -
WKmeans一种基于特征权重的聚类算法
1 引例在前面两篇文章中,我们首先介绍了KmeansKmeansKmeans聚类算法的原理;然后又介绍了一种基于KmeansKmeansKmeans进行改进的Kmeans++Kmeans++Kmeans++聚类算法,该算法的改进点在于依次初始化KKK个簇中心,最大程度上使得不同的簇中心彼此之间相距较远。而在本篇文章中,我们将继续介绍另外一种基于KmeansKmeansKmeans改进的聚类算法——WKmeansWKmeansWKmeans。那它的改进点又在哪儿呢?跟我一起机器学习系列文章将首发于公众号:原创 2020-07-06 08:36:33 · 8702 阅读 · 0 评论 -
几种常见的聚类评估指标
在前面两篇文章中,笔者已经介绍了两种聚类算法,同时还通过sklearn完成相应的示例。但是,到目前为止笔者还没有介绍如何来聚类的经过进行评估。这接下来的这篇文章中,笔者将会介绍在聚类算法中几种常见的评估指标,以及其中两种相应的原理。同时,如果不用关系其具体计算过程的,可以直接阅读第三部分即可。如同之前介绍的其它算法模型一样,对于聚类来讲我们同样会通过一些评价指标来衡量聚类算法的优与劣。在聚类任务中,常见的评价指标有:准确率(Accuracy)、F值(F-score)、调整兰德系数(Adjusted Ran原创 2020-07-03 08:37:25 · 13832 阅读 · 4 评论 -
Kmeans++聚类算法原理与实现
1 引例在上一篇文章中,笔者介绍了什么是聚类算法,并且同时还介绍了聚类算法中应用最为广泛的KmeansKmeansKmeans聚类算法。从KmeansKmeansKmeans聚类算法的原理可知,KmeansKmeansKmeans在正式聚类之前首先需要完成的就是初始化kkk个簇中心。同时,也正是因为这个原因,使得KmeansKmeansKmeans聚类算法存在着一个巨大的缺陷——收敛情况严重依赖于簇中心的初始化状况。试想一下,如果在初始化过程中很不巧的将kkk个(或大多数)簇中心都初始化了到同一个簇中,那原创 2020-07-01 08:47:37 · 6909 阅读 · 0 评论 -
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 · 1124 阅读 · 0 评论 -
没有你看不懂的Kmeans聚类算法
1 引例经过前面一些列的介绍,我们已经接触到了多种回归和分类算法。并且这些算法有一个共同的特点,那就是它们都是有监督的(supervised)学习任务。接下来,笔者就开始向大家介绍一种无监督的(unsupervised) 经典机器学习算法——聚类。同时,由于笔者仅仅只是对Kmeans框架下的聚类算法较为熟悉,因此在后续的几篇文章中笔者将只会介绍Kmeans框架下的聚类算法,包括:Kmeans、Kmeans++和WKmeans。在正式介绍聚类之前我们先从感性上认识一下什么是聚类。聚类的核心思想就是将具有相原创 2020-06-23 09:08:38 · 1388 阅读 · 0 评论 -
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 · 887 阅读 · 0 评论 -
对偶性与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 · 787 阅读 · 0 评论 -
好久不见的拉格朗日乘数法
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 · 1925 阅读 · 0 评论 -
SVM之软间隔最大化
跟我一起机器学习系列文章将首发于公众号:月来客栈,欢迎文末扫码关注!在前面几篇文章中,笔者分别介绍了什么是支持向量机以及如何通过sklearn来完成一个简单的SVM建模;接着还介绍了什么是线性不可分与核函数。在接下来的这篇文章中,笔者将继续介绍SVM中的软间隔与sklearn相关SVM模型的实现。1 什么是软间隔我们之前谈到过两种情况下的分类:一种是直接线性可分的;另外一种是通过ϕ(x)\phi(x)ϕ(x)映射到高维空间之后“线性可分”的。为什么后面这个“线性可分”要加上引号呢?这是因为在 上一篇文原创 2020-06-16 09:23:45 · 544 阅读 · 0 评论 -
SVM之线性不可分与核技巧
跟我一起机器学习系列文章将首发于公众号:月来客栈,欢迎文末扫码关注!在前面两篇文章中,笔者通过两个角度来介绍了什么是支持向量机。不过说一千道一万,还是不如动手来做做。在本篇文章中,笔者将首先介绍如何通过sklearn来搭建相应的SVM分类模型,然后将接着介绍如何处理SVM中的线性不可分问题。1 SVM建模1.1 API介绍在sklearn中,我们通过from sklearn.svm import SVC这句代码就能够导入SVM分类模型了。有人可能会觉得奇怪,为什么导入的是一个叫SVC的东西?这是因为原创 2020-06-13 11:00:28 · 1295 阅读 · 0 评论 -
从另一个角度看支持向量机
跟我一起机器学习系列文章将首发于公众号:月来客栈,欢迎文末扫码关注!在上一篇文章中,笔者介绍了什么是支持向量机以及如何来建模对应的优化问题,且同时那也是一种主流的理解支持向量机的视角。下面,笔者再来从另外一个角度来介绍什么是支持向量机。这两种理解支持向量机的方法有着截然不同的切入点,因此可以一起阅读以便对支持向量机有着更好的理解。1 什么是支持向量机SVM的全称是Support Vector Machine,即支持向量机。SVM主要也是用于解决分类问题的一个算法模型,属于有监督学习算法的一种。同时,S原创 2020-06-11 08:18:04 · 416 阅读 · 0 评论 -
原来这就是支持向量机
跟我一起机器学习系列文章将首发于公众号:月来客栈,欢迎文末扫码关注!在前面一系列的文章中,我们已经学习了多种分类算法模型,对于机器学习算是有了一定的了解。在接下来的几篇文章中,我们将开始逐步介绍《跟我一起机器学习》中的最后一个分类模型——支持向量机。**支持向量机(Support Vector Machine)**可以算得上是机器学习算法中最经典的模型之一。之所以称之为经典是因为其有着近乎完美的数学推导与证明,同时也正是因为这个原因,使得其求解过程有着很高的数学门槛。因此,对于接下来的内容,笔者也仅仅只会原创 2020-06-08 15:51:44 · 695 阅读 · 1 评论 -
泰坦尼克号沉船生还预测
在前面的几篇文章中,笔者陆续介绍了几种决策树的生成算法以及常见的集成模型。接下来在这篇文章中,笔者将以泰坦尼克号生还预测(分类)为例来进行实战演示;并且还会介绍相关的数据预处理方法,例如缺失值填充和类型特征转换等。1 数据集预处理我们本次用到的数据集为泰坦尼克号生还预测数据集(公众号回复”数据集“即可获取),原始数据集一共包含891个样本,12个特征维度。但是需要注意的是,这12个特征维度不一定都会用到,我们只选择我们认为有用的就行;同时存在一些样本的某些特征维度出现缺失值的状况,因此我们需要对其进行填原创 2020-06-05 18:33:47 · 1032 阅读 · 2 评论 -
随机森林在sklearn中的使用
在上一篇文章中,笔者介绍了常见集成模型的主要思想,并且还提到随机森林是使用最为广泛的集成模型之一。因此在本篇文章中,笔者将会再次就随机森林的其它应用以及其在sklearn中的具体用法进行介绍。1 API介绍在上一篇文章中,我们介绍了随机森林的基本原理,但并没有对其的具体用法做出详细的示例。接下来,我们就对其在sklearn[1]中的具体用法进行介绍。打开sklearn中关于随机森林的定义可以发现:A random forest classifier.A random forest is a me原创 2020-06-04 10:19:37 · 788 阅读 · 0 评论 -
集成模型:Bagging、Boosting和Stacking
跟我一起机器学习系列文章将首发于公众号:月来客栈,欢迎文末扫码关注!1 引例通过前面几篇文章的学习,我们已经了解了机器学习中的多种分类和回归模型。那现在有一个问题就是,哪一个模型最好呢?以分类任务为例,当我们拿到一个需要进行分类的任务时,如果是你你会选择哪种模型进行建模呢?一个狡猾的办法就是挨个都试一下,那这样做有没有道理呢?还别说,我们在实际的情况中真的可能会都去试一下,因为在没有实验之前谁都不会知道真正的结果。假如现在我们对A、C、D这三个模型进行建模,最后得到结果是:A的分类准确率为0.93,B的原创 2020-06-03 08:24:18 · 2778 阅读 · 0 评论 -
决策树的生成与剪枝CART
跟我一起机器学习系列文章将首发于公众号:月来客栈,欢迎文末扫码关注!在之前的一篇文章中,笔者分别介绍了用ID3和C4.5这两种算法来生成决策树。其中ID3算法每次用信息增益最大的特征来划分数据集,C4.5算法每次用信息增益比最大的特征来划分数据集。接下来,我们再来看另外一种采用基尼指数为标准的划分方法,CART算法。1 CART算法分类与回归算法(Classification and Regression Tree,CAR),即可以用于分类也可以用于回归,它是应用最为广泛的决策树学习方法之一。CART原创 2020-06-02 08:27:27 · 499 阅读 · 0 评论 -
决策树的建模与剪枝
跟我一起机器学习系列文章将首发于公众号:月来客栈,欢迎文末扫码关注!在前面的两篇文章中,笔者首先介绍了决策树的基本思想;然后接着介绍了两种用于构建决策树的生成算法:ID3和C4.5。在这篇文章中,笔者将将通过sklearn库来实现对决策树分类算法的建模。1 Scikit-learn建模1.1 Scikit-learn接口介绍清楚决策树的生成算法后,再利用sklearn来进行建模就变得十分容易了。顺便多说两句,由于sklearn在实现各类算法模型时基本上都遵循了同一的接口风格,这使得我们在刚开始学习的原创 2020-05-29 15:08:42 · 609 阅读 · 0 评论 -
决策树的生成之ID3与C4.5算法
跟我一起机器学习系列文章将首发于公众号:月来客栈,欢迎文末扫码关注!1 基本概念在正式介绍决策树的生成算法前,我们先将上一篇文章中介绍的几个概念重新梳理一下;并且同时再通过一个例子来熟悉一下计算过程,以便于后续更好的理解决策树的生成算法。1.1 信息熵设XXX是一个取值为有限个的离散型随机变量(例如前一篇引例中可能夺冠的16只球队),其概率分布为P(X=xi)=pi, i=1,2,...,nP(X=x_i)=p_i,\;i=1,2,...,nP(X=xi)=pi,i=1,2,...,n(每个球原创 2020-05-27 18:53:34 · 1070 阅读 · 0 评论 -
这就是决策树的思想
跟我一起机器学习系列文章将首发于公众号:月来客栈,欢迎文末扫码关注!1 引例经过前面的介绍,我们已经学习过了三个分类算法模型,包括逻辑回归、K近邻和朴素贝叶斯。今天我们来开始学习下一个分类算法模型决策树(Decision Tree)。一说到决策树其实很多人或多或少都已经用过,只是自己还不知道罢了。例如最简单的决策树就是通过输入年龄,判读其是否为成年人,即if age >= 18 return True,想想自己是不是经常用到这样的语句?关于什么是决策树,我们先来看这么一个例子。假如我错过了某次世原创 2020-05-25 19:49:37 · 712 阅读 · 0 评论 -
TF-IDF文本表示方法与词云图
跟我一起机器学习系列文章将首发于公众号:月来客栈,欢迎搜索关注!在前面的一篇文章中,我们介绍了两种基本的用于文本表示的词袋模型表示方法,两者之间的唯一区别就是一个考虑的词频而另外一个没有。下面我们再介绍另外一种应用更为常见和广泛的词袋模型表示方式——TFIDF表示方法。之所以陆续的会出现不同的向量化表示形式,其最终目的都只有一个,即尽可能准确的对原始文本进行表示。1 TF-IDFTF-IDF为**词频-逆文档频率(term frequence - inverse document frequence)原创 2020-05-22 16:41:55 · 4964 阅读 · 0 评论 -
文本特征提取之词袋模型
跟我一起机器学习系列文章将首发于公众号:月来客栈,欢迎文末扫码关注!1 引例在前面几讲的示例介绍中,我们所用到的数据集都是别人已经处理好的数据集,换句话说这些数据集的每个特征维度都已经是数值了。但是在实际的建模任务中,我们拿到的数据集并不是这样的形式。例如接下来我们要完成的一个任务:对中文垃圾邮件进行分类。为什么两个人在一起会有爱情呢? 爱真的需要勇气 把自己的内心毫无保留的展示给对方 也勇敢的去 接受对方的点点滴滴,过去的事情虽然不能再改变什么,但是 看了你的贴子,你说你不需要建议. 我想问你个问原创 2020-05-20 15:23:25 · 2615 阅读 · 0 评论 -
可能是最容易理解的朴素贝叶斯
前面几讲笔者分别介绍了一种回归模型和两种分类模型以及模型的改善与泛化,今天笔者开始介绍下一个新的分类模型——朴素贝叶斯(Naive Bayes, NB)。那么什么又是朴素贝叶斯呢?从名字也可以看出,朴素贝叶斯算法与贝叶斯公式有着莫大的关联,说得简单点朴素贝叶斯就是由贝叶斯公式加“朴素”这一条件所构成的算法。1 朴素贝叶斯算法在看贝叶斯算法的相关内容时,你一定被突如其来的数学概念搞得头昏脑涨。比如极大似然估计(Maximum likelihood estimation ),极大后验概率估计(Maximum原创 2020-05-19 19:17:12 · 442 阅读 · 0 评论 -
这样理解的K最近邻算法
跟我一起机器学习系列文章将首发于公众号:月来客栈,欢迎文末扫码关注!1 引例前面三讲笔者分别介绍了线性回归、逻辑回归以及模型的改善与泛化,今天笔者开始介绍下一个新的算法模型——K近邻(K-nearest neighbor, KNN)。那么什么又是K近邻呢?某一天,你和你的几位小伙伴准备去外面聚餐,但是就晚上吃什么一直各持己见。最后,无奈聪明的你提出用投票的方式来进行选择。于是你们每个人都将自己想要吃的东西写在了字条上,最后的统计情况是:三个人赞成吃火锅、两个人赞成吃炒菜、一个人赞成吃自助。当然,最后你原创 2020-05-18 19:18:06 · 452 阅读 · 0 评论 -
模型的改善与泛化(手写体识别)
跟我一起机器学习系列文章将首发于公众号:月来客栈,欢迎文末扫码关注!经过前面五篇文章的介绍,我们对模型的改善与泛化算了有了一定的认识与了解。下面笔者就通过一个实际的手写体分类任务来做一个示范,介绍一下常见的操作流程。并同时顺便介绍一下sklearn和matplotlib中常见方法的使用。1 数据集1.1 导入数据集本次我们用到的是sklearn中内置的一个数据集digits手写体,可以通过如下代码进行导入:from sklearn.datasets import load_digitsfrom原创 2020-05-15 19:32:16 · 564 阅读 · 0 评论 -
模型的改善与泛化(偏差方差与交叉验证)
跟我一起机器学习系列文章将首发于公众号:月来客栈,欢迎文末扫码关注!上一篇文章笔者介绍了什么是正则化,以及正则化为什么能够缓解过拟合的原理。从上一篇文章的内容我们可以知道,越是复杂的模型越是可能产生过拟合的现象,这也就为模型在其它未知数据集上的预测带来了误差。但是这些误差来自哪里,是怎么产生的呢?知道这些误差的来源后对改善我们的模型有什么样的帮助呢?下面这篇文章笔者就来介绍关于误差分析以及模型选择的若干方法。1 偏差与方差1.1 定义在机器学习的建模中,模型普遍的误差都是来自于偏差(bias)和方差原创 2020-05-14 19:18:50 · 865 阅读 · 0 评论 -
L2正则化为什么能够使得模型更简单?全是因为
跟我一起机器学习系列文章将首发于公众号:月来客栈,欢迎文末扫码关注!从上一篇文章的介绍可以知道,模型产生过拟合的现象表现为:在训练集上误差较小,而在测试集上误差较大。并且笔者还说到,之所以产生过拟合现象是由于训练数据中存在一定的噪音,而我们为了尽可能的做到拟合每一个样本点(包括噪音),往往就会使用复杂的模型。最终使得训练出来的模型很大程度上受到了噪音数据的影响,例如真实的样本数据可能更符合一条直线,但是由于个别噪音的影响使得训练出来的是一条弯曲的曲线,从而使得模型在测试集上表现糟糕。因此,我们可以将这一过原创 2020-05-13 19:40:19 · 1048 阅读 · 0 评论 -
模型的改善与泛化(过拟合)
跟我一起机器学习系列文章将首发于公众号:月来客栈,欢迎文末扫码关注!1 拟合在上一篇文章中,我们介绍了为什么要对特征维度进行标准化,不标准化会带来什么样的后果,以及一种常见的标准化方法;同时我们还从另外一个角度(特征映射)介绍了如何将原始的低纬特征通过多项式映射到高维特征,以此来解决分线性的拟合问题。今天这篇文章笔者就接着往下继续介绍其它的模型改善的方法和策略。由于拟合(fitting) 这个概念还并没有介绍,这里稍微补充以下。所谓求解模型的过程,其实就是通过某种方式(例如梯度下降)来拟合模型参数的过原创 2020-05-12 21:27:10 · 796 阅读 · 0 评论 -
模型的改善与泛化(梯度与等高线)
跟我一起机器学习系列文章将首发于公众号:月来客栈,欢迎文末扫码关注!在上一篇文章中,笔者介绍了什么是等高线,并且还同时直接给出了梯度的垂直于等高线的结论,但是并没有介绍为什么。因此本篇文章就来大致介绍一下梯度为什么会垂直于等高线。设f(x,y)=cf(x,y)=cf(x,y)=c为平面上任意一曲线,又由于曲线F(x,y)=0F(x,y)=0F(x,y)=0的法向量为n→={Fx,Fy}=ΔF\overrightarrow{n}=\{F_x,F_y\}=\Delta Fn={Fx,Fy}=ΔF。原创 2020-05-11 19:55:07 · 813 阅读 · 1 评论 -
模型改善与泛化(标准化与特征映射)
跟我一起机器学习系列文章将首发于公众号:月来客栈,欢迎文末扫码关注!0 前言经过前面两讲的内容,我们完成了对线性回归(Linear Regression)和逻辑回归(Logistics Regression)核心内容的学习,但是一些涉及到模型改善(Optimization)与泛化(Generalization)的方式并没有进行介绍。第三讲,笔者将以线性回归和逻辑回归为例(同样可以运通到后续介绍的其他算法模型),介绍一些机器学习中常用的模型和数据处理的技巧,以及尽可能的说清楚为什么要这么做的原因。由于这部原创 2020-05-11 19:50:28 · 1000 阅读 · 0 评论 -
逻辑回归(目标函数推导)
跟我一起机器学习系列文章将首发于公众号:月来客栈,欢迎文末扫码关注!0 前言前面几篇文章笔者详细的介绍了什么是逻辑回归、如何进行多分类、以及分类任务对应的评价指标等,算是完成了前面第一个阶段的学习。但是到目前为止仍旧有一些问题没有解决,映射函数g(z)g(z)g(z)长什么样?逻辑回归的目标函数怎么来的?如何自己求解实现逻辑回归?下面我们就来一一回答这三个问题。在这三个问题解决后,整个逻辑回归...原创 2020-05-07 20:04:06 · 2917 阅读 · 0 评论 -
逻辑回归(混淆矩阵与评估指标)
跟我一起机器学习系列文章将首发于公众号:月来客栈,欢迎文末扫码关注!1 多变量逻辑回归上一篇文章中笔者对于什么是逻辑回归,以及它能用来干什么做了一个详细的介绍;同时,对于如何通过开源库进行建模训练并预测也给出了详细的示例,并对训练得到的决策边界进行了可视化。因此,本篇文章将主要围绕多变量逻辑回归,多分类问题和分类评价指标这三个方面进行介绍。所为多变量逻辑回归其实就是一个样本点有多个特征属性...原创 2020-05-06 19:43:22 · 3486 阅读 · 0 评论 -
逻辑回归(模型的建立与求解)
跟我一起机器学习系列文章将首发于公众号:月来客栈,欢迎文末扫码关注!0 前言在上一讲中,笔者通过五篇文章来详细的介绍了线性回归模型,那么本讲开始继续介绍下一个经典的机器学习算法逻辑回归(Logistics Regression)。如图所示为逻辑回归模型学习的大致路线,同样也分为三个阶段。在第一个阶段结束后,我们也就大致掌握了逻辑回归的基本原理。下面就开始正式进入逻辑回归模型的学习。1...原创 2020-05-05 19:54:15 · 3560 阅读 · 0 评论 -
线性回归(目标函数的推导)
跟我一起机器学习系列文章将首发于公众号:月来客栈,欢迎文末扫码关注!1 线性回归1.1 目标函数经过前面多篇文章的介绍,我们知道了什么是线性回归、怎么转换求解问题、如何通过sklearn进行建模并求解以及梯度下降法的原理与推导。同时,在上一篇文章中我们还通过一个故事来交代了最小二乘法的来历,以及误差服从高斯分布的事实。下面这篇文章就来完成两个任务:线性回归的推导以及Python代码的实现...原创 2020-05-01 08:44:33 · 1794 阅读 · 0 评论 -
神说要有正态分布,于是就有了正态分布。
跟我一起机器学习系列文章将首发于公众号:月来客栈,欢迎文末扫码关注!神说,要有正态分布,就有了正态分布。神看正态分布是好的,就让随机误差服从了正态分布。— 创世纪—数理统计一个问题的出现故事发生的时间是 18 世纪中到 19 世纪初。17、18 世纪是科学发展的黄金年代,微积分的发展和牛顿万有引力定律的建立,直接的推动了天文学和测地学的迅猛发展。这些天文学和测地学的问题,无不涉及到数...转载 2020-05-01 08:41:20 · 510 阅读 · 0 评论 -
你从未见过从这个角度来解释梯度下降算法
1 引例在前面的介绍中,笔者都是不假思索的直接给出了线性回归的目标函数J(W,b)J(W,b)J(W,b),也没有给出严格的数学定义,并且还问过能不能改成绝对值或者4次方等等。同时,我们在求解的过程中是直接通过开源框架所实现的,也并不知道其内部的真正原理。因此,这篇文章笔者将比较详细对目标函数的求解过程和最小二乘法进行讲解。根据前面的介绍我们知道,梯度下降算法的目的是用来最小化目标函数,也就是...原创 2020-04-30 08:48:29 · 579 阅读 · 0 评论 -
线性回归(模型的评估)
1 前言前面两篇文章笔者介绍了如何建模线性回归(包括多变量与多项式回归)、如何通过sklearn搭建模型并求解。但是对于一个求解出来的模型我们应该怎样来对其进行评估呢?换句话说,你这个模型到底怎么样?以最开始的房价预测为例,现在假设你求解得到了图中所示的两个模型h1(x)h_1(x)h1(x)与h2(x)h_2(x)h2(x),那么应该选哪一个呢?亦或是在不能可视化的情况下,应该来如何评...原创 2020-04-30 08:39:50 · 1650 阅读 · 1 评论 -
线性回归(多变量与多项式回归)
1 多变量线性回归1.1 概念在上一篇文章中笔者详细的介绍了什么是线性回归以及一个典型的应用场景,同时还介绍了如何通过开源的sklearn来搭建一个简单的线性回归模型,使得对于线性回归的核心思想有了一定的掌握。接下来,笔记继续带领读者来进行下一步的学习。在这里还是以房价预测为例。尽管影响房价的主要因素的面积,但是其它因素同样也可能影响到房屋的价格。例如房屋到学校的距离、到医院的距离和到大型商...原创 2020-04-28 20:00:56 · 1948 阅读 · 0 评论