1、为何选择机器学习

 在智能应用的早期,许多系统使用人为的if和else语句来处理数据,以主动拦截邮箱的垃圾邮件为例,可以创建一个关键词黑名单,所有包含这些关键词的邮件被标记为垃圾邮件,这是人为制定策略的一种方式,但这种方式有以下两种缺点:

  • 做决策所需要的逻辑只适用于单一领域和单项任务。任务哪怕稍有变化,都可能需要重写整个系统。

  • 想要制订规则,需要对人类专家的决策过程有很深刻的理解

 而这种人为制定规则政策的方式最不适用的反面教材就是机器学习,由于计算机"感知"像素点(图像)的方式与人类感知面部的方式有非常大的不同,所以人们想制定一种规则来识别数字图像中的人脸,基本上是不可能的,而对机器学习算法,仅需要输入大量的人脸图像,就可以让算法确定人脸的特征,由此才实现人脸识别的功能。

2、机器学习能够解决的问题

 最成功的机器学习算法是能够将决策过程自动化的算法,又称为“监督学习算法”,就像老师监督一样,给出大量的试题以及答案,然后让人去判断。在这种算法中用户将成对的输入和预期输出提供给算法,算法会找到一种方法,根据给定输入给出预期输出。尤其是在没有人类帮助的情况下,给定前所未见的输入,算法也能够给出相应的输出。以前面的垃圾邮件的自动判断,用户提供大量的邮件作为输入,将大量邮件内是否为垃圾邮件作为预定输出,给定邮件就可以自动判断是否为垃圾邮件。

  主要实例:

  • 识别信封上手写的邮政编码:这里的输入是扫描的手写数字,预期输出是邮政编码中的实际数字。

  • 基于医学图像判断肿瘤是否为良性:这里的输入是影像,输出是肿瘤是否为良性。

  • 检测信用卡交易中的欺诈行为:这里的输入是信用卡交易记录,输出是该交易记录是否可能为诈骗。

 而另一种机器学习算法是"无监督学习算法",在该算法中,只有输入数据是已知的,没有为算法提供输出数据。这种算法虽然有许多应用,但理解和评估这种算法往往困难很大。

  主要实例:

  • 确定一系列博客文章的主题:进行汇总,数据作为输入,而不知道有哪些主题,有多少主题。所以输出是未知的。

  • 将客户分成具有相似偏好的群组:客户作为数据,但不知道可以按什么分组,分成哪几种主题的分组,所以输出未知。

  • 检测网站的异常访问:每种异常访问方式都不同,而可能还有没有记录在案的异常访问示例。

 在机器学习中,这里的每个实体或每一行被称为一个样本(sample)或数据点,而每一列(用来描述这些实体的属性)则被称为特征(feature)。构建良好的数据表征,这被称为特征提取或者特征工程。由一个人的名字可以大概率判断一个人的性别就是这类应用。

3.熟悉任务和数据

 在学习过程中或者开始时要牢记这几个问题:

  • 我想要回答的问题是什么?已经收集到的数据能够回答这个问题吗?

  • 要将我的问题表示成机器学习问题,用哪种方法最好?

  • 我收集的数据是否足够表达我想要解决的问题?

  • 我提取了数据的哪些特征?这些特征能否实现正确的预测?

  • 如何衡量应用是否成功?

  • 机器学习解决方案与我的研究或商业产品中的其他部分是如何相互影响的?

4、Python的scikit-learn

  scikit-learn 是一个开源项目,可以免费使用和分发,任何人都可以轻松获取其源代码来查看其背后的原理。scikit-learn 项目正在不断地开发和改进中,它的用户社区非常活跃。它包含许多目前最先进的机器学习算法,每个算法都有详细的文(http://scikit-learn.org/stable/documentation)。scikit-learn 是一个非常流行的工具,也是最有名的 Python 机器学习库。

  安装scikit-learn

  若已经安装了 Python,可以用 pip 安装上述所有包:

  $ pip install numpy scipy matplotlib ipython scikit-learn pandas

[Python机器学习]机器学习概述的更多相关文章

  1. 【python与机器学习实战】感知机和支持向量机学习笔记(一)

    对<Python与机器学习实战>一书阅读的记录,对于一些难以理解的地方查阅了资料辅以理解并补充和记录,重新梳理一下感知机和SVM的算法原理,加深记忆. 1.感知机 感知机的基本概念 感知机 ...

  2. 用Python开始机器学习(7:逻辑回归分类) --好!!

    from : http://blog.csdn.net/lsldd/article/details/41551797 在本系列文章中提到过用Python开始机器学习(3:数据拟合与广义线性回归)中提到 ...

  3. [resource]23个python的机器学习包

    23个python的机器学习包,从常见的scikit-learn, pylearn2,经典的matlab替代orange, 到最新最酷的Theano(深度学习)和torch 7 (well,其实lua ...

  4. 机器学习00:如何通过Python入门机器学习

    我们都知道机器学习是一门综合性极强的研究课题,对数学知识要求很高.因此,对于非学术研究专业的程序员,如果希望能入门机器学习,最好的方向还是从实践触发. 我了解到Python的生态对入门机器学习很有帮助 ...

  5. Python相关机器学习‘武器库’

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

  6. 基于Python的机器学习实战:KNN

    1.KNN原理: 存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一个数据与所属分类的对应关系.输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应 ...

  7. Windows+Python+anaconda机器学习安装及环境配置步骤

    Windows+Python+anaconda机器学习安装及环境配置步骤 1. 下载安装python3.6以上版本(包含pip,不用自己安装)2. 直接下载安装pycharm安装包(用于编写pytho ...

  8. 用Python开始机器学习(2:决策树分类算法)

    http://blog.csdn.net/lsldd/article/details/41223147 从这一章开始进入正式的算法学习. 首先我们学习经典而有效的分类算法:决策树分类算法. 1.决策树 ...

  9. Python开源机器学习框架:Scikit-learn六大功能,安装和运行Scikit-learn

    Python开源机器学习框架:Scikit-learn入门指南. Scikit-learn的六大功能 Scikit-learn的基本功能主要被分为六大部分:分类,回归,聚类,数据降维,模型选择和数据预 ...

  10. 沉淀再出发:使用python进行机器学习

    沉淀再出发:使用python进行机器学习 一.前言 使用python进行学习运算和机器学习是非常方便的,因为其中有很多的库函数可以使用,同样的python自身语言的特点也非常利于程序的编写和使用. 二 ...

随机推荐

  1. Linux系统基础认知

    什么是操作系统? 操作系统作为接口的示意图: 没有安装操作系统的计算机,通常被称为裸机 如果想在 裸机 上运行自己所编写的程序,就必须用机器语言书写程序 如果计算机上安装了操作系统,就可以在操作系统上 ...

  2. 编译生成protobuf的jar包

    编译生成protobuf的jar包 配置maven 安装maven,并修改maven源为阿里云 下载maven wget http://mirror.bit.edu.cn/apache/maven/m ...

  3. 06-Spring03-事务管理

    今日知识 1. Spring事务管理 2. 转账案例 Spring事务管理 1. 事务特性(ACID) 1. 原子性:整体 [原子性是指事务包含的所有操作要么全部成功,要么全部失败] 2. 一致性:数 ...

  4. qt creator源码全方面分析(2-3)

    目录 External Tool Specification Files 文件名 位置 文件格式 主要标签 描述标签 可执行规范标签 示例 External Tool Specification Fi ...

  5. NPOI word文档表格在新的文档中多次使用

    最近有一个项目,涉及到文档操作,有一个固定的模版,模版中有文字和表格,表格会在新的文档中使用n多次 //获取模版中的表格FileStream stream = new FileStream(strPa ...

  6. 跨域的两种解决方法jsonp和CORS

    1.跨域 什么是跨域? 当你请求的url是不同源的数据的时候,浏览器一般会抛出请求跨域的错误,如下图: 造成跨域的原因? 即你违反了浏览器的同源策略的限制=>阻止一个域的js脚本和另外一个域的内 ...

  7. Centos 7 主要命令改动 service chkconfig iptables

    1.service.chkconfig => systemctl seivice和chkconfig 是linux上的常用命令在centos7上被systemctl代替. CentOS 7 使用 ...

  8. [Python]获取字典所有值

    方法一:Key Value 直接获取 databases = {1: 'Student', 2: 'School'} for k,v in databases.items(): print(k,v) ...

  9. VFP的数据策略:高级篇

    VFP的数据策略:高级篇 引语 在“VFP中的数据策略:基础篇”一文中,我们研究了VFP应用程序中访问非VFP数据(如SQL Server)的不同机制:远程视图.SQL Passthrough.ADO ...

  10. jQuery-Moblie在Chrome下出现的问题

    第一次用jQuery然后就遇到很蛋疼的地方,打开页面一直处在菊花状态,一开始以为自己搞错什么,是不是引用错文件,看里面的错误警告 Failed to execute 'replaceState' on ...