[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自身语言的特点也非常利于程序的编写和使用. 二 ...
随机推荐
- Linux系统基础认知
什么是操作系统? 操作系统作为接口的示意图: 没有安装操作系统的计算机,通常被称为裸机 如果想在 裸机 上运行自己所编写的程序,就必须用机器语言书写程序 如果计算机上安装了操作系统,就可以在操作系统上 ...
- Sklearn--(SVR)Regression学习笔记
今天介绍一个机器学习包,sklearn.其功能模块有regression\classification\clustering\Dimensionality reduction\data preproc ...
- Uncaught Error: Call to undefined function mcrypt_get_iv_size() 解决办法
函数 mcrypt_get_iv_size 在只在(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0) 这几个版本 ...
- 《Head first设计模式》之外观模式
外观模式提供了一个统一的接口,用来访问子系统中的一群接口.外观定义了一个高层接口,让子系统更容易使用. 我们已经知道适配器模式是如何将一个类的接口转换成另一个符合客户期望的接口的.现在我们要看一个改变 ...
- Linux Firewalld用法及案例
Firewalld概述 动态防火墙管理工具 定义区域与接口安全等级 运行时和永久配置项分离 两层结构 核心层 处理配置和后端,如iptables.ip6tables.ebtables.ipset和模块 ...
- Nginx-2.初学者使用
原文 Nginx有一个master进程和几个worker进程.master进程用来读取和评估配置文件,以及维护worker进程.worker进程用来处理实际的请求.Nginx使用事件模型和基于操作系统 ...
- Python2-Django配置阿里大于的短信验证码接口
1.短信发送开发指南地址:https://help.aliyun.com/document_detail/55491.html?spm=a2c4g.11186623.6.568.l5zTwH 2.SD ...
- VMware ESXi 6.7安装过程介绍
虚拟机配置信息如下: 一.安装ESXI 开启虚拟机,正常进入开机引导安装界面 默认选择第一个选项,8s后自动进入如下界面,依次为: 加载引导程序 接受协议 选择用来存放ESXI操作系统的磁盘,不能乱选 ...
- C#建立自己的测试用例系统
引言 很多时候,需要对类中的方法进行一些测试,来判断是否能按要求输出预期的结果. C#提供了快速创建单元测试的方法,但单元测试不仅速度慢不方便,大量的单元测试还会拖慢项目的启动速度. 所以决定自己搞个 ...
- Ajax0002: 省市县三级联动案例