简介

前置声明:本专栏的所有文章皆为本人学习时所做笔记而整理成篇,转载需授权且需注明文章来源,禁止商业用途,仅供学习交流.(欢迎大家提供宝贵的意见,共同进步)

正文:

机器学习,顾名思义,就是研究计算机如何学习和模拟人类的行为,并根据已学得的知识对该行为进行增强和改进。

举例来说,假设邮箱收到了一封新邮件,通常我们可以通过邮件里是否含有广告、不相关信息以及乱码等特征,人为的来判断这封邮件是否是一封垃圾邮件。

如上述可知,机器学习模拟人类的行为,所以它同样依据这些邮件内容的特征来判断一封邮件是否是垃圾邮件。那么计算机是如何判断邮件内容里那些是广告和垃圾信息的呢? 我们知道,在我们刚出生的时候,大家都不知道世间那些事情是好的,那些事情是坏的,都是爸爸妈妈告诉我们说:打人是不对的,帮助他人才是该做的。同理,尚未学习的计算机刚开始也不能独立思考,为了让它区分垃圾邮件和正常邮件,所以我们必须需要告诉它,邮件里的内容那些是广告和垃圾信息,那些是正常的内容。这一过程是机器学习的核心过程,通过这一核心过程,计算机便有了初步的对于邮件垃圾与否的“知识”,正如我们学了加减乘除后便可以做简单的运算。

机器学习的核心过程一般分为包含如下模块:

  1. 训练数据集:训练数据集是机器学习的“课本”,如邮件训练数据集,其中包含了各种各样的邮件,其中每个邮件都有一个标识,用来表示其为正常邮件还是垃圾邮件。典型的数据格式如:邮件1,1;邮件2,0,;邮件3,1;其中0表示正常邮件,1表示垃圾邮件,因此可以看出邮件1和3为垃圾邮件,邮件2为正常邮件;
  2. 学习算法:计算机通过机器学习算法对训练数据集进行分析,并建立最终的模型。即通过对“课本”的学习,建立一套自己的解题方案。如通过对邮件数据集的学习后,当收到新邮件时,通过模型便可判断该邮件是否是垃圾邮件。模型的最终生成以及其性能的高低依据选择的机器算法而定。
  3. 测试模型:通过某些测试数据[类别未知]对模型进行测试,如输入多封新邮件测试模型能够将邮件正确分类的效果,若达不到预期效果则需要调整学习算法的参数。

机器学习算法有很多,大致分为监督学习算法和无监督学习算法。

监督学习:训练数据集的类别已知,如上文提到的邮件训练数据集,通过对训练数据集的学习生成模型。好比面前有一位老师告诉了你题目的方法和答案,,当你了解了老师教你的方法时,面对的新的题目便可自行解答。

监督学习的算法:

  1. 分类算法 —— K-近邻算法、决策树、朴素贝叶斯算法、Logistic回归、etc.
  2. 预测算法 —— 局部加权线性回归、线性回归、支持向量、Ridge回归、Lasso最小回归系数估计、etc.

无监督学习:数据集的类别未知,如草原上一群未被标记的动物,起初不知道这些动物该如何分类,但通过观察这些动物的特征便可知道,可以将体格壮的分为一类(大型动物),食草的分为一类(食草动物)以及爬行的分为一类(爬行动物)等,因此无监督学习也是通过对数据集的特征进行分析,根据特征相似性对数据集进行分类。

无监督学习算法:K-均值、最大期望算法、DBSCAN、Parzen窗设计、etc.

[上述提到的机器算法会在后续中一 一讲解]

总之,机器学习通过算法对训练数据集进行学习,生成最终的模型,并用此模型模拟人类行为对新输入进行判断。

机器学习模型除了可以分辨垃圾邮件外,还可以做很多事情,比如根据对超市顾客购物清单的学习分析,可知买了尿布的顾客会顺便买一罐啤酒,因此超市可将尿布和啤酒放在一起从而提高销量;通过对图书馆借书记录的分析,可以将相似的书籍推荐给读者;对购买产品记录的分析,网站会提示买家该产品的最佳搭配产品或者提示买家其他顾客除了购买该产品还购买了哪些与之搭配的产品;通过对房子的特征及其房价的数据分析,可以预测某种房子的房价;通过对文本的分析对大量的文章进行自动分类......。机器学习可以做很多自动化的事情,从而提高效率。

在学习机器学习算法的理论及代码实现前,需要如下几个前提:

  1. 高等数学、线性代数、概率论与数理统计的基础 (至少了解概念)
  2. 编程基础 (Java、C++、Python 等都可作为实现机器学习算法的语言) [建议:Python,Python包含众多的科学计算包,更容易更方便实现其算法]

Python机器学习环境搭建

若未接触过Python,需要看下Python的基础语法,不过代码里面我会写上详细注释。

正如安装Java一样,我们需要去官方网站下载JDK,Python类似,Python分为2.7和3.6版本,本专栏选择使用2.7版本。

安装好Python后,还需要安装机器学习所需要的Python科学计算包 ,例如:numpy+mkl、scipy、matplotlib等。不过这里我们并不安装原始的Python版本,而是安装anaconda,它是Python的一个发行版本,安装好它后就不用再去下载上述Python包,其本身已经包含了,比较方便。

anaconda下载地址:Downloads 选择Python 2.7 version下载

安装步骤在此略过。

安装好后打开Anaconda Navigator 如图:

启动后如图所示:

lauch spyder,spyder是Anaconda下的一个Python集成开发环境,正如Java之于Eclipse,.net之于Visual Studio .其他工具后续再说。

当然按照惯例 输出 hello world

机器学习的简介和Python开发环境的搭建到此结束,后续将会依次讲解机器学习的算法、数学知识以及算法的推导过程。

2017/10/30 阿弎

机器学习1—简介及Python机器学习环境搭建的更多相关文章

  1. python学习之python开发环境搭建

    Python简介 Python是一种面向对象.解释型计算机程序设计语言.Python语法简洁而清晰,具有丰富和强大的类库等等众多的特性,这是来自百度百科的介绍,在百度百科还能看到它的更详细的介绍信息, ...

  2. python开发环境搭建

    虽然网上有很多python开发环境搭建的文章,不过重复造轮子还是要的,记录一下过程,方便自己以后配置,也方便正在学习中的同事配置他们的环境. 1.准备好安装包 1)上python官网下载python运 ...

  3. Eclipse中Python开发环境搭建

    Eclipse中Python开发环境搭建  目 录  1.背景介绍 2.Python安装 3.插件PyDev安装 4.测试Demo演示 一.背景介绍 Eclipse是一款基于Java的可扩展开发平台. ...

  4. selenium + python 自动化测试环境搭建

    selenium + python 自动化测试 —— 环境搭建 关于 selenium Selenium 是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操 ...

  5. eclipse python开发环境搭建

    eclipse python开发环境搭建[非原创] 1.在www.eclipse.org官网下载Eclipse Classic 4.2.2,Win7 64位下载eclipse-SDK-4.2.2-wi ...

  6. ubuntu下python flask环境搭建

    ubuntu下python flask环境搭建 1. 安装pip sudo apt-get install python-dev pyhton-pip 2. 安装virtualenv sudo apt ...

  7. python服务器环境搭建(2)——安装相关软件

    在上一篇我们在本地的虚拟服务器上安装好CentOS7后,我们的python web服务.自定义的python service或python脚本需要在服务器上运行,还需要在服务器安装各种相关的软件才行, ...

  8. Python + Appium 环境搭建

    ---恢复内容开始--- Appium自动化公司内部测试培训1-环境搭建 课程目的 一.Python + Appium 环境搭建 课程内容 1    安装前准备工作 搭建环境所需要的安装文件已经下载好 ...

  9. 自动化测试 Appium之Python运行环境搭建 Part2

    Appium之Python运行环境搭建 Part2 by:授客 QQ:1033553122 实践环境 参见 Appium之Python运行环境搭建 Part1 环境部署 1.安装Android SDK ...

随机推荐

  1. kudu基础入门

    1.kudu介绍 1.1 背景介绍 在KUDU之前,大数据主要以两种方式存储: (1)静态数据: 以 HDFS 引擎作为存储引擎,适用于高吞吐量的离线大数据分析场景.这类存储的局限性是数据无法进行随机 ...

  2. window与Linux之间的文件传输

    使用工具:WinSCP WinSCP可以直接通过SSH链接你的linux服务器:然后进行文件的复制操作:并且可以直接编辑文件. 1.下载WinSCP 2.登录WinSCP,输入你的Linux 的IP地 ...

  3. Oracle_spatial的空间索引

    空间索引 1.空间索引的创建 1)创建索引之前总是要为空间层插入元数据 2)如果之前创建的索引失败了,必须先删除才能创建 Drop index customers_sidx; 创建索引: Create ...

  4. BZOJ3569:DZY Loves Chinese II(线性基)

    Description 神校XJ之学霸兮,Dzy皇考曰JC. 摄提贞于孟陬兮,惟庚寅Dzy以降. 纷Dzy既有此内美兮,又重之以修能. 遂降临于OI界,欲以神力而凌♂辱众生.   今Dzy有一魞歄图, ...

  5. Odoo作为App后端时如何调试App

    转载请注明原文地址:https://www.cnblogs.com/cnodoo/p/9307340.html  一:Odoo可以作为app后台+后台管理系统使用 Odoo作为一个可供二次开发的框架, ...

  6. OpenCV——视频操作基础

    读入视频: VideoCapture 类 //方法一 VideoCapture capture; capture.open("test.avi"); //方法二 VideoCapt ...

  7. DB-Engines Ranking

    DB-Engines Ranking trend chart The DB-Engines Ranking ranks database management systems according to ...

  8. 第39章 ETH—Lwip以太网通信

    第39章     ETH—Lwip以太网通信 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/ ...

  9. linux 《vmware下克隆的centos无法配置固定ip》

    1.用vmware克隆一个centos 2.进入centos,打开命令行输入ifconfig,运行后发现没有eth0 3.运行网卡启动命令ifconfig eth0 up,再运行ifconfig wa ...

  10. centos安装redis并设置开机启动

    1.通过yum安装: yum install redis 2.设置redis.conf中daemonize为yes.设置密码: requirepass 3.安装完后的启动脚本是完善的,/etc/ini ...