[Python机器学习]机器学习概述
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机器学习]机器学习概述的更多相关文章
- 【python与机器学习实战】感知机和支持向量机学习笔记(一)
对<Python与机器学习实战>一书阅读的记录,对于一些难以理解的地方查阅了资料辅以理解并补充和记录,重新梳理一下感知机和SVM的算法原理,加深记忆. 1.感知机 感知机的基本概念 感知机 ...
- 用Python开始机器学习(7:逻辑回归分类) --好!!
from : http://blog.csdn.net/lsldd/article/details/41551797 在本系列文章中提到过用Python开始机器学习(3:数据拟合与广义线性回归)中提到 ...
- [resource]23个python的机器学习包
23个python的机器学习包,从常见的scikit-learn, pylearn2,经典的matlab替代orange, 到最新最酷的Theano(深度学习)和torch 7 (well,其实lua ...
- 机器学习00:如何通过Python入门机器学习
我们都知道机器学习是一门综合性极强的研究课题,对数学知识要求很高.因此,对于非学术研究专业的程序员,如果希望能入门机器学习,最好的方向还是从实践触发. 我了解到Python的生态对入门机器学习很有帮助 ...
- Python相关机器学习‘武器库’
开始学习Python,之后渐渐成为我学习工作中的第一辅助脚本语言,虽然开发语言是Java,但平时的很多文本数据处理任务都交给了Python.这些年来,接触和使用了很多Python工具包,特别是在文本处 ...
- 基于Python的机器学习实战:KNN
1.KNN原理: 存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一个数据与所属分类的对应关系.输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应 ...
- Windows+Python+anaconda机器学习安装及环境配置步骤
Windows+Python+anaconda机器学习安装及环境配置步骤 1. 下载安装python3.6以上版本(包含pip,不用自己安装)2. 直接下载安装pycharm安装包(用于编写pytho ...
- 用Python开始机器学习(2:决策树分类算法)
http://blog.csdn.net/lsldd/article/details/41223147 从这一章开始进入正式的算法学习. 首先我们学习经典而有效的分类算法:决策树分类算法. 1.决策树 ...
- Python开源机器学习框架:Scikit-learn六大功能,安装和运行Scikit-learn
Python开源机器学习框架:Scikit-learn入门指南. Scikit-learn的六大功能 Scikit-learn的基本功能主要被分为六大部分:分类,回归,聚类,数据降维,模型选择和数据预 ...
- 沉淀再出发:使用python进行机器学习
沉淀再出发:使用python进行机器学习 一.前言 使用python进行学习运算和机器学习是非常方便的,因为其中有很多的库函数可以使用,同样的python自身语言的特点也非常利于程序的编写和使用. 二 ...
随机推荐
- 在Thinkphp3.1中使用Mongo的具体操作
最近研究Mongo项目都是用TP开发的,先介绍下Mongo在TP3.1中的用法 首先要确保你的PHP环境中已经安装好Mongo扩展,在实际项目中大多数都是Mysql数据库为主的,那么如何添加一个Mon ...
- docker集合
docker集合 docker(1):容器技术简介 docker(2):docker的“前身”—lxc docker(3):docker简介 docker(4):docker的安装(centos7)和 ...
- vue路由--命名路由
有时我们通过一个名称来标识一个路由显得更方便一些,特别是在链接一个路由,或者是执行一些跳转的时候.你可以在创建 Router 实例的时候,在 routes 配置中给某个路由设置名称. 我们直接在路由下 ...
- PHPExcel使用
参考链接: 官方github:https://github.com/PHPOffice/PHPExcel 设置表格字体颜色等操作:http://www.cnblogs.com/grimm/p/9 ...
- 干货!手把手教你使用数据可视化BI软件创建企业变更流程监控大屏
灯果数据可视化BI软件是新一代人工智能数据可视化大屏软件,内置丰富的大屏模板,可视化编辑操作,无需任何经验就可以创建属于你自己的大屏.大家可以在他们的官网下载软件. 本文以企业变更流程监控大屏为例 ...
- Spark存储介绍
目录 整体架构 存储相关类 应用启动时 增删改后更新元数据 获取数据存放位置 数据块的删除 RDD存储调用 数据读取 数据写入 cache & checkpoint Reference 记录一 ...
- vue 使用v-for进行循环
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- MFC/QT 学习笔记(四)——MFC基于对话框学习控件(下)
//5.列表控件 ListControl 属性 报表模式 view:Report:添加变量 //Cdemo5Dlg.cpp ps:资源视图 右键 类向导 成员变量 查看对象所属类 // TODO: 在 ...
- 基于Jupyter Notebooks的C# .NET Interactive安装与使用
.NET Interactive发布预览版了,可以像Python那样用jupyter notebooks来编辑C#代码.具体可以在GitHub上查看dotnet/interactive项目. 安装步骤 ...
- Java实体对象为什么要实现Serializable接口?
前言 Java实体对象为什么一定要实现Serializable接口呢?在学JavaSE的时候有些实体对象不实现Serializable不是也没什么影响吗? 最近在学习mybatis的时候发现,老师写的 ...