python机器学习《入门》
写在前面的废话:
好吧,不得不说鱼C的markdown文本编辑器挺不错的,功能齐全。再次感谢小甲鱼哥哥的python视频让我去年大三下学期的时候入门了编程,爱上了编程这门语言,由于是偏冷门的统计学,在实习以后就决定把方向放在数据挖掘方面了,越来越发现专业课的重要性。在大家都忙着参加各种培训的日子里面,我就在去年寒冷的冬天把甲鱼哥的python视频一字不落的看完了;现在,在别人拼命参加校招的日子里,我就来学习“机器学习”这里面的算法了(ps:工科学校的理科妹子表示很难找到数据分析工作,人家只要研究生)。好吧,我就不信邪了,硬是开启了持续两个月的Ng教授的coursera上面的“机器学习”课程(里面的assignment很简单,使用matlab完成),刚好实验室进货一本《机器学习实战》,也就拿来练练手,让自己的python进阶一下,之前各种web后台折腾,尤其是爬虫,然而我不想帮别人爬数据,我要分析数据,挖掘潜在信息,程序是工具,掌握业务趋势才是王道!
不废话了,接下来的笔记系列都是我在coursera上面的领悟,根据自己的手写笔迹以及《机器学习实战》这本书的代码得来的,希望不习惯更新博客的我能把这件事情坚持下来。加油!
正文:
这两年估计很多人都听说过“大数据”,目前机器学习也在悄无声息的进入到部分数据挖掘领域。当然,国外数据挖掘已经很成熟了,机器算法应用的范围也就更加广泛,分别有:网络搜索,邮件分类;机器人;生物和医药学研究等等。
这里举几个具体例子:
- 网站数据:你可以根据网站的点击数据了解产品的欢迎程度;
- 医疗数据:根据医疗记录了解病人的病情方便诊断;
- 生物方面:比如基因DNA序列可以用于研究人类的某些特质甚至遗传方面的信息;
- 工程领域:指导无人机自主运行,手写字体的识别,NLP(Natural Language Processing 俗称”自然语言处理“),以及计算机视觉;
- 推荐系统:亚马逊的产品推荐系统(貌似这个也可以被分到网站数据)。
那么啰嗦了这么多,什么是机器学习呢?
这里有两种定义:
- 通俗点讲:研究让机器拥有人一样的学习能力,该能力不被固定的编程实现或操作,属于机器本身的一种自主学习行为。
- 学术点讲:通过经验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机器学习《入门》的更多相关文章
- Python机器学习--回归
线性回归 # -*- coding: utf-8 -*- """ Created on Wed Aug 30 19:55:37 2017 @author: Adminis ...
- 吴裕雄 python 机器学习——回归决策树模型
import numpy as np import matplotlib.pyplot as plt from sklearn import datasets from sklearn.model_s ...
- python机器学习《回归 一》
唠嗑唠嗑 依旧是每一次随便讲两句生活小事.表示最近有点懒,可能是快要考试的原因,外加这两天都有笔试和各种面试,让心情变得没那么安静的敲代码,没那么安静的学习算法.搞得第一次和技术总监聊天的时候都不太懂 ...
- 常用python机器学习库总结
开始学习Python,之后渐渐成为我学习工作中的第一辅助脚本语言,虽然开发语言是Java,但平时的很多文本数据处理任务都交给了Python.这些年来,接触和使用了很多Python工具包,特别是在文本处 ...
- [Python] 机器学习库资料汇总
声明:以下内容转载自平行宇宙. Python在科学计算领域,有两个重要的扩展模块:Numpy和Scipy.其中Numpy是一个用python实现的科学计算包.包括: 一个强大的N维数组对象Array: ...
- 2016年GitHub排名前20的Python机器学习开源项目(转)
当今时代,开源是创新和技术快速发展的核心.本文来自 KDnuggets 的年度盘点,介绍了 2016 年排名前 20 的 Python 机器学习开源项目,在介绍的同时也会做一些有趣的分析以及谈一谈它们 ...
- [resource]Python机器学习库
reference: http://qxde01.blog.163.com/blog/static/67335744201368101922991/ Python在科学计算领域,有两个重要的扩展模块: ...
- python机器学习实战(四)
python机器学习实战(三) 版权声明:本文为博主原创文章,转载请指明转载地址 www.cnblogs.com/fydeblog/p/7364317.html 前言 这篇notebook是关于机器学 ...
- python机器学习工具包
1. scikit-learn: Machine Learning in Python scikit-learn是一个基于NumPy, SciPy, Matplotlib的开源机器学习工具包,主要涵盖 ...
- Python机器学习:5.6 使用核PCA进行非线性映射
许多机器学习算法都有一个假设:输入数据要是线性可分的.感知机算法必须针对完全线性可分数据才能收敛.考虑到噪音,Adalien.逻辑斯蒂回归和SVM并不会要求数据完全线性可分. 但是现实生活中有大量的非 ...
随机推荐
- 抓包工具charles使用教程指南
0x01 前言: Charles是一款抓包修改工具,相比起burp,charles具有界面简单直观,易于上手,数据请求控制容易,修改简单,抓取数据的开始暂停方便等等优势!下面来详细介绍下这款强大好用的 ...
- GDI学习之俄罗斯方块续
当前方块对象 #region 定义砖块int[i,j,y,x] Tricks:i为那块砖,j为状态,y为列,x为行 private int[, , ,] Tricks = {{ { {,,,}, {, ...
- oracle-删除归档日志
rman target user/password; DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
- Linux Crash/Hang on Bay Trail/J1900/N2940
近几年的linux kernel, 尤其是4.1以后,在Bay Trail平台上会随机挂起和死机,亲测j1900,死机非常频繁,而且死机前毫无征兆,直接就挂起了,console也没有相应. 这个问题在 ...
- jQuery 获取页面元素的属性值
获取浏览器显示区域(可视区域)的高度 : $(window).height(); 获取浏览器显示区域(可视区域)的宽度 : $(window).width(); 获取页面的文档高度 ...
- linux 打包压缩工具
以.gz结尾 gzip 压缩工具压缩的文件gzip+文件名[root@test ~]# gzip 2.txt[root@test ~]# ls2.txt.gz testgzip -d +压缩包[roo ...
- JAVA版Kafka代码及配置解释
伟大的程序员版权所有,转载请注明:http://www.lenggirl.com/bigdata/java-kafka.html.html 一.JAVA代码 kafka是吞吐量巨大的一个消息系统,它是 ...
- UESTC 31 饭卡(Card) --背包问题
背包问题. 思路:如果m<5,此时也不能消费,所以此时答案为m m>=5: 求出背包容量为m-5,买前n-1样便宜的菜(排个序)的最大价值(即最大消费,即消费完后剩余值最接近5)最后减去最 ...
- rm 删除带空格的文件或者目录
1. 信息来源 from man rm, 绝对真实有效 比较删除一个 windows盘符下的 “Program Files“ 目录, 直接rm Program Files 会直接报错, 需要修改为如下 ...
- sqlzoo.net刷题
只发后面提升题目的题解,前面的太简单,写下来也没有意义 12.查找尤金•奧尼爾EUGENE O'NEILL得獎的所有細節 Find all details of the prize won by EU ...