写在前面的废话:

好吧,不得不说鱼C的markdown文本编辑器挺不错的,功能齐全。再次感谢小甲鱼哥哥的python视频让我去年大三下学期的时候入门了编程,爱上了编程这门语言,由于是偏冷门的统计学,在实习以后就决定把方向放在数据挖掘方面了,越来越发现专业课的重要性。在大家都忙着参加各种培训的日子里面,我就在去年寒冷的冬天把甲鱼哥的python视频一字不落的看完了;现在,在别人拼命参加校招的日子里,我就来学习“机器学习”这里面的算法了(ps:工科学校的理科妹子表示很难找到数据分析工作,人家只要研究生)。好吧,我就不信邪了,硬是开启了持续两个月的Ng教授的coursera上面的“机器学习”课程(里面的assignment很简单,使用matlab完成),刚好实验室进货一本《机器学习实战》,也就拿来练练手,让自己的python进阶一下,之前各种web后台折腾,尤其是爬虫,然而我不想帮别人爬数据,我要分析数据,挖掘潜在信息,程序是工具,掌握业务趋势才是王道!
不废话了,接下来的笔记系列都是我在coursera上面的领悟,根据自己的手写笔迹以及《机器学习实战》这本书的代码得来的,希望不习惯更新博客的我能把这件事情坚持下来。加油!


正文:
这两年估计很多人都听说过“大数据”,目前机器学习也在悄无声息的进入到部分数据挖掘领域。当然,国外数据挖掘已经很成熟了,机器算法应用的范围也就更加广泛,分别有:网络搜索,邮件分类;机器人;生物和医药学研究等等。

这里举几个具体例子:

  • 网站数据:你可以根据网站的点击数据了解产品的欢迎程度;
  • 医疗数据:根据医疗记录了解病人的病情方便诊断;
  • 生物方面:比如基因DNA序列可以用于研究人类的某些特质甚至遗传方面的信息;
  • 工程领域:指导无人机自主运行,手写字体的识别,NLP(Natural Language Processing 俗称”自然语言处理“),以及计算机视觉;
  • 推荐系统:亚马逊的产品推荐系统(貌似这个也可以被分到网站数据)。

那么啰嗦了这么多,什么是机器学习呢?
这里有两种定义:

  1. 通俗点讲:研究让机器拥有人一样的学习能力,该能力不被固定的编程实现或操作,属于机器本身的一种自主学习行为。
  2. 学术点讲:通过经验E,针对某些任务T,设计出一段计算机程序,该程序拥有特定的绩效指标P,程序的目的就是根据历史经验E的不断的积累在任务T中提高它的绩效指标P。

学术就是学术,太生硬了,也是我不考研的原因之一,so boring~通俗的举个例子:


下跳棋:
E = 玩了多局跳棋所累积的经验
T = 下跳棋本身就是一个任务
P = 程序赢得下一次跳棋的可能性

机器学习主要包括两个任务:分类和回归。前者非常容易理解,就是在一个预测任务中把数据分类;后者回归主要是统计意义上的,用于预测数据,做过数学建模的同学估计对拟合曲线相当熟悉;是的,回归里面一个非常重要的任务——数据拟合曲线:通过给定的数据集合拟合出最优曲线,使得该曲线尽量能够反应数据的趋势,在不过度拟合的情况下能让给定的数据集落在线附近(上)。而机器学习包括“监督学习”和“非监督学习”,那么分类和回归都属于“监督学习”。接下来抛砖引玉,本文的重点就是区分“监督学习”和“非监督学习”,后面的文章中讲分别对这两种学习进行细分,甚至回归和分类里面的细节更是数不甚数。

  • Supervised Study

Example 1:房价预测(线性回归)
假设,你手上有一堆房价以及房子大小面积的数据,让你根据房子大小估算房价,然后你根据数据得出下图(图太丑,不许勿喷)

你根据数据的分布分别拟合直线和曲线,两种拟合的线在x1这个点预测分别得到y1和y2;因此,不同的曲线对应不同的预测结果。那么,为什么我说这里的房价预测就是一种“监督学习”呢?因为有确定的答案被给出了,也就是说在数据集中,不同的房子的面积分别对应着不同的房价。也就是说,这类算法明确的知道自己预测的是什么(本例中预测房价),目标变量非常明确。
以上问题也被称为回归问题:预测连续的输出值。

Example 2:肿瘤癌的预测:良性肿瘤和恶性肿瘤(Logistic回归)

上图中的“×”符号代表的就是数据集,指的是不同肿瘤大小对应是否为恶性肿瘤(1),如果是恶性肿瘤,那么对应数值1;反之对应数值2。这就是一个典型的二值化问题,也被称为(Logistic回归问题),常用于分类:离散的输出值(0或者1)。

当然,在实际的预测中,肿瘤是否恶性的判断需要依据很多属性,比如:肿瘤块的厚度、细胞的形状等等,而影响肿瘤大小的因素也有很多,比如年龄等等。这么多属性,如果都用画图的方式来拟合数据,就显得比较低效率,因此,我们引入了“向量机”,以后我们会讨论到这个问题,有兴趣的可以谷歌一下。

  • Unsupervised Study

顾名思义就是没有给定的正确的答案
先上图:

单纯是给一堆数据,如上图的黑色小圆圈代表数据集,让你找到这些数据的结构特点,也就是聚类(正所谓:物以类聚,人以群分)。很明显,你没有标准答案,因此既可以把数据按照红色的椭圆形聚为2类,又可以按照紫色的线条圈起来的范围聚为3类,还可以按照蓝色正方形圈为2类,没有人说你这种聚类是错误的,只要你说出你的理由。

看起来,非监督学习无理可循,但是应用范围相当广泛:组织计算机集群,社交网络分析,市场份额分割以及天文数据分析。在未来大数据下需要被探索的东西太多,未知数也往往深不可测,因此非监督学习这个学科的“水”相当深~

嗯,暂且介绍到这里,老衲要午睡了,下午还要上courera的课程,第四周了,欢迎有兴趣的朋友和我成为同学~

下集预告:线性回归以及梯度下降算法。

python机器学习《入门》的更多相关文章

  1. Python机器学习--回归

    线性回归 # -*- coding: utf-8 -*- """ Created on Wed Aug 30 19:55:37 2017 @author: Adminis ...

  2. 吴裕雄 python 机器学习——回归决策树模型

    import numpy as np import matplotlib.pyplot as plt from sklearn import datasets from sklearn.model_s ...

  3. python机器学习《回归 一》

    唠嗑唠嗑 依旧是每一次随便讲两句生活小事.表示最近有点懒,可能是快要考试的原因,外加这两天都有笔试和各种面试,让心情变得没那么安静的敲代码,没那么安静的学习算法.搞得第一次和技术总监聊天的时候都不太懂 ...

  4. 常用python机器学习库总结

    开始学习Python,之后渐渐成为我学习工作中的第一辅助脚本语言,虽然开发语言是Java,但平时的很多文本数据处理任务都交给了Python.这些年来,接触和使用了很多Python工具包,特别是在文本处 ...

  5. [Python] 机器学习库资料汇总

    声明:以下内容转载自平行宇宙. Python在科学计算领域,有两个重要的扩展模块:Numpy和Scipy.其中Numpy是一个用python实现的科学计算包.包括: 一个强大的N维数组对象Array: ...

  6. 2016年GitHub排名前20的Python机器学习开源项目(转)

    当今时代,开源是创新和技术快速发展的核心.本文来自 KDnuggets 的年度盘点,介绍了 2016 年排名前 20 的 Python 机器学习开源项目,在介绍的同时也会做一些有趣的分析以及谈一谈它们 ...

  7. [resource]Python机器学习库

    reference: http://qxde01.blog.163.com/blog/static/67335744201368101922991/ Python在科学计算领域,有两个重要的扩展模块: ...

  8. python机器学习实战(四)

    python机器学习实战(三) 版权声明:本文为博主原创文章,转载请指明转载地址 www.cnblogs.com/fydeblog/p/7364317.html 前言 这篇notebook是关于机器学 ...

  9. python机器学习工具包

    1. scikit-learn: Machine Learning in Python scikit-learn是一个基于NumPy, SciPy, Matplotlib的开源机器学习工具包,主要涵盖 ...

  10. Python机器学习:5.6 使用核PCA进行非线性映射

    许多机器学习算法都有一个假设:输入数据要是线性可分的.感知机算法必须针对完全线性可分数据才能收敛.考虑到噪音,Adalien.逻辑斯蒂回归和SVM并不会要求数据完全线性可分. 但是现实生活中有大量的非 ...

随机推荐

  1. 本人常用的Linux bash快捷键(持续更新)

    按使用频率由高到低排列: Ctrl + a :移到命令行首Ctrl + e :移到命令行尾 Ctrl + u :从光标处删除至命令行首Ctrl + k :从光标处删除至命令行尾 Ctrl + d :删 ...

  2. 关于Solr搜索标点与符号的中文分词你必须知道的(mmseg源码改造)

    关于Solr搜索标点与符号的中文分词你必须知道的(mmseg源码改造) 摘要:在中文搜索中的标点.符号往往也是有语义的,比如我们要搜索“C++”或是“C#”,我们不希望搜索出来的全是“C”吧?那样对程 ...

  3. nyoj 230/poj 2513 彩色棒 并查集+字典树+欧拉回路

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=230 题意:给你许许多多的木棍,没条木棍两端有两种颜色,问你在将木棍相连时,接触的端点颜色 ...

  4. Loj 1003–Drunk(拓扑排序)

    1003 - Drunk PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB One of my fr ...

  5. linux硬链接与软链接

    在linux操作系统中的文件数据除了实际的内容外,还会含有文件权限(rwx)与文件属性(owner,group,other等),文件系统通常会将这两部分的数据存放在不同的区块,文件权限与文件属性放置在 ...

  6. [转]Responsive Tables Demo

    本文转自:http://elvery.net/demo/responsive-tables/ A quick and dirty look at some techniques for designi ...

  7. TYVJ1288 飘飘乎居士取能量块 -SilverN

    描述   9月21日,今天是pink的生日,飘飘乎居士当然要去别人的领土大闹一番啦!  为了收集更多的能量到pink家大闹,飘飘乎居士准备从后花园中取出自己多年积攒的p个能量块.后花园一共被划分n个地 ...

  8. 最小瓶颈路 Uva 534 Frogger

    说明:关于Uva的题目,可以在vjudge上做的,不用到Uva(那个极其慢的)网站去做. 最小瓶颈路:找u到v的一条路径满足最大边权值尽量小 先求最小生成树,然后u到v的路径在树上是唯一的,答案就是这 ...

  9. 优化后的二次测试Miller_Rabin素性测试算法

    ll random(ll n) { return (ll)((double)rand()/RAND_MAX*n + 0.5); } ll pow_mod(ll a,ll p,ll n) { ) ; l ...

  10. springMVC+ajax分页查询

    项目用到ajax技术的查询,查询结果很多时候要分页展示.这两天摸索了一下,在这里做一总结,方便自己随时查看, 也方便后人参考. 这里的顺序遵从从前台页面到后台控制器,业务层,Dao层,Mapper 下 ...