如果想了解更多的知识,可以去我的机器学习之路 The Road To Machine Learning通道
我的每一个标题都是一个链接,进去你能看到更多的详细介绍以及编程实践、性能测评等

Introduction

从现在开始,我会将用大量的实例和数据,着重介绍两类最为广泛使用的机器学习模型(监督学习经典模型与无监督学习经典模型)的使用方法、性能评价指标以及优缺点

对于每一类经典模型,都将从模型简介、数据描述、编程实践、性能评测以及特点分析5个角度分别进行阐述

监督学习经典模型

“机器学习中监督学习模型的任务重点在于,根据已有经验知识对未知样本的目标/标记进行预测。根据目标预测变量的类型不同,我们把监督学 习任务大体分为分类学习与回归预测两类。”

尽管如此,我们仍然可以对它们的共同点进行归纳,整理出如图所示的监督学习任务的基本架构和流程:首先准备训练数据,可以是文本、图像、音频等;然后抽取所需要的特征,形成特征向量(Feature Vectors);接着,把这些特征向量连同对应的标记/目标(Labels)一并送人学习算法(Machine Learning Algorithm)中,训练出一个预测模型(Predictive Model);然后,采用同样的特征抽取方法作用于新测试数据,得到用于测试的 特征向量;最后,使用预测模型对这些待测试的特征向量进行预测并得到结果(Expected Label)

在“分类学习“节中,为了展现其广泛的应用环境,对于每一种分类学习模型, 我们都会使用不同的任务以及数据样例进行说明。在逐渐掌握这些基本分类模型的使用 方法之后,会在“回归预测”中集中解决一个相同的问题并使用一套相同的数据 样例,比较不同回归模型的性能差异;同时也可以让读者体验到不断尝试不同模型,进而改进学习性能的乐趣。

分类学习

分类学习是最为常见的监督学习问题,并且其中的经典模型也最为广泛地被应用。其中,最基础的便是**二分类(Binary Classification)问题,即判断是非,从两个类别中选择一个作为预测结果;除此之外还有多类分类(Multiclass Classification)**的问题,即在多于 两个类别中选择一个;甚至还有多标签分类(Multi-label Classification)问题,与上述二分类以及多类分类问题不同,多标签分类问题判断一个样本是否同时属于多个不同类别。

在实际生活和工作中,我们会遇到许许多多的分类问题,比如,医生对肿瘤性质的判定;邮政系统对手写体邮编数字进行识别;互联网资讯公司对新闻进行分类;生物学家对 物种类型的鉴定;甚至,我们还能够对某些大灾难的经历者是否生还进行预测等。

线性分类器(绝对初学者福音)

如果我们定义x=<x1,x2,…,xn>x = <x_1,x_2,\dots,x_n>x=<x1​,x2​,…,xn​>来代表n维特征列向量D,同时用n维列向量w=<w1,w2,…,wn>w=<w_1,w_2,\dots,w_n>w=<w1​,w2​,…,wn​>来代表对应的权重,或者叫做系数(Coefficient);同时为了避免其 过坐标原点这种硬性假设,增加一个截距(Intercept)b。由此这种线性关系便可以表达为 f(w,x,b)=wTx+bf(w,x,b)=w^Tx+bf(w,x,b)=wTx+b
这里的f∈R,取值范围分布在整个实数域中。
然而,我们所要处理的最简单的二分类问题希望f∈{0,1};因此需要一个函数把原 先的∈R映射到(0,1)。于是我们想到了逻辑斯蒂(Logistic)函数:
g(z)=11+e−zg(z) = \frac{1}{1+e^{-z}} g(z)=1+e−z1​
这里z∈R,并且g∈(0,1),函数图像如图所示

综上,如果将zzz替换为fff,结合两个方程,就获得了一个经典的线性分类器,逻辑斯蒂回归模型(Logistic Regression):
hw,b(x)=g(f(w,x,b))=11+e−f=11+e−(wTx+b)h_{w,b}(x)=g(f(w,x,b))=\frac{1}{1+e^{-f}}=\frac{1}{1+e^{-(w^Tx+b)}}hw,b​(x)=g(f(w,x,b))=1+e−f1​=1+e−(wTx+b)1​

如果z = 0,那么g = 0.5;若z < 0则g < 0.5,这个特征向量被判别为一类;反之,若z > 0,则g > 0.5, 其被归为另外一类。
当使用一组m个用于训练的特征向量X=<x1,x2,..,xm>X=<x^1,x^2,..,x^m>X=<x1,x2,..,xm>和其所对应的分类目标 y=<y1,y2,…,ym>y=<y^1,y^2,\dots,y^m>y=<y1,y2,…,ym>,我们希望逻辑斯蒂模型可以在这组训练集上取得最大似然估计(Maximum Likelihod)的概率 L(w,b)。或者说,至少要在训练集上表现如此:
argmaxw,bL(w,b)=∏1=1m(hw,b(i))yi(1−hw,b(i))1−yiargmax_{w,b} L(w,b) = \prod_{1=1}^{m} (h_{w,b}(i))^{y^i}(1-h_{w,b}(i))^{1-y^i}argmaxw,b​L(w,b)=1=1∏m​(hw,b​(i))yi(1−hw,b​(i))1−yi
为了学习到决定模型的参数(Parameters),即系数w和截距b,我们普遍使用一种精确计算的解析算法和一种快速估计的随机梯度上升(Stochastic Gradient Ascend)算法。这里不会过多介绍算法的细节,主要是编程实践使用这两种算法求解模型参数。

具体介绍和编程实践都在这(线性分类器)

支持向量机(分类)

由于这些分类模型最终都是要应用在未知分布的测试数据上,因此我们更加关注如何最大限度地为未知分布的数据提供足够的待预测空间。比如,如果有一个黑色样本稍稍向右偏离橙色直线,那么这个黑色 样本很有可能被误判为圆形样本,造成误差;而红色直线在空间中的分布位置依然可以为 更多“稍稍偏离”的样本提供足够的“容忍度”。因此,我们更加期望学习到红色的直线作为更好的分类模型。

支持向量机分类器(Support Vector Classifier),便是根据训练样本的分布,搜索所有可能的线性分类器中最佳的那个①。进一步仔细观察图的红色直线,我们会发现决 定其直线位置的样本并不是所有训练数据,而是其中的两个空间间隔最小的两个不同类 别的数据点,而我们把这种可以用来真正帮助决策最优线性分类模型的数据点叫做“支持向量”。逻辑斯蒂回归模型在训练过程中由于考虑了所有训练样本对参数的影响,因此不一定获得最佳的分类器。

注:①这里所说的“最佳”不是绝对的。换句话说,不是在所有的数据集上,支持向量机的性能表现就一定优于普通的线性模型或者其他模型。这里的假设是:如果未知的待测数据也如训练数据一样分布,那么的确支持向量机可以帮助我们找到最佳的分类器。然而,很多实际应用数据总是有偏差的。.

具体介绍和编程实践都在这(支持向量机(分类))

我会不断更新。。。

PYTHON机器学习基础(初学机器学习者的福音)相关推荐

  1. Python机器学习基础教程(1)Irises(鸢尾花)分类之新手上路

    一.感谢博客的内容提供的参考 标题:最新版学习笔记---Python机器学习基础教程(1)Irises(鸢尾花)分类---附完整代码 作者:非鱼子焉 地址:https://zhu-rui.blog.c ...

  2. Python机器学习基础篇二《监督学习》

    前言 前期回顾: Python机器学习基础篇一<为什么用Python进行机器学习> 前面说过,监督学习是最常用也是最成功的机器学习类型之一.本章将会详细介绍监督学 习,并解释几种常用的监督 ...

  3. Python机器学习基础教程-第2章-监督学习之K近邻

    前言 本系列教程基本就是摘抄<Python机器学习基础教程>中的例子内容. 为了便于跟踪和学习,本系列教程在Github上提供了jupyter notebook 版本: Github仓库: ...

  4. 回归素材(part4)--python机器学习基础教程

    学习笔记,仅供参考 文章目录 python机器学习基础教程 线性模型 用于回归的线性模型 过拟合 岭回归 lasso python机器学习基础教程 线性模型 用于回归的线性模型 过拟合

  5. 泛化,过拟合,欠拟合素材(part1)--python机器学习基础教程

    学习笔记,仅供参考,有错必纠 文章目录 python机器学习基础教程 泛化.过拟合.欠拟合 模型复杂度与训练集大小的关系 python机器学习基础教程 泛化.过拟合.欠拟合 判断一个算法在新数据上表现 ...

  6. python基础教程免费下载-《Python机器学习基础教程》高清版免费PDF下载

    Python机器学习基础教程-[德] 安德里亚斯·穆勒(Andreas C.Müller)[美]莎拉·吉多(Sarah Guido) 著,张亮(hysic) 译 下载地址1:网盘下载 下载地址2:网盘 ...

  7. Python机器学习基础篇三《无监督学习与预处理》

    前言 前期回顾: Python机器学习基础篇二<为什么用Python进行机器学习> 上面这篇里面写了文本和序列相关. 我们要讨论的第二种机器学习算法是无监督学习算法.无监督学习包括没有已知 ...

  8. python机器学习基础教程-学习笔记(一)

    了解 scikit-learn 及其用法是很重要的,但还有其他一些库也可以改善你的编程体验. scikit-learn 是基于 NumPy 和 SciPy 科学计算库的.此外,我们还会用到 panda ...

  9. Python机器学习基础之Matplotlib库的使用

    声明:代码的运行环境为Python3.Python3与Python2在一些细节上会有所不同,希望广大读者注意.本博客以代码为主,代码中会有详细的注释.相关文章将会发布在我的个人博客专栏<Pyth ...

最新文章

  1. 用Python做一个翻译软件,还怕英语不好?
  2. 菜鸟成长日记(一)之WMIC简单命令应用
  3. 如何解决打开一个DBF数据表时出现的“Index not Found…”错误(摘)
  4. Kail Linux渗透测试教程之免杀Payload生成工具Veil
  5. Power of Cryptography
  6. Getting the right Exception Context from a Memory dump Fixed
  7. html 文本横竖切换,(横竖屏切换/强制横屏)CSS3 transform 怎样才能中心旋转?
  8. pygame为游戏添加背景_用 Python 制作飞机大战小游戏
  9. 蒂森电梯服务器显示4480,成都电梯豪宅市场分析专题报告.docx
  10. AI 生态赋能 2018 论坛来袭!转型 AI 看这里!
  11. windows2008不能显示图片缩略图设置
  12. 新宝美股三大指数集体高开
  13. Unity资源分享网站——记录
  14. 云服务器重装系统步骤,腾讯云服务器如何更换操作系统?更换系统镜像重装系统方法...
  15. 设置网页浏览器标签小图标
  16. 【对比Java学Kotlin】协程-异步流
  17. rsync来实现文件同步
  18. 输入某学生的考试成绩,输出对应等级A、B 、C、 D、E
  19. java事务占用内存吗,如何排查java应用中CPU使用率高或内存占用高的问题
  20. Elasticsearch的基本使用

热门文章

  1. 推荐几款超好用的内网穿透神器,总有一款适合你!
  2. PDF转word之后的结果事图片格式,如何改成.doc或.docx格式
  3. 合同节水服务认证国内怎么申请?
  4. Java 集合中遍历删除元素抛异常的原因,从ArrayList说起
  5. 云端体验鸿蒙,AI加持的另类彩电之华为智慧屏带你体验鸿蒙
  6. .net core word转pdf_Enolsoft PDF to Word with OCR for Mac(PDF转Word软件)
  7. Android之按钮点击事件——显示图片隐藏图片
  8. Linux下切换capslock和control键
  9. JavaScript实现的放大镜放大图片效果
  10. qt5把qt_zh_CN.qm加载了,但QTextEdit的右键菜单仍然是英文,而QLineEdit的倒是中文。怎样设置使得QTextEdit的右键菜单是中文