python机器学习简介
机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。从数据中提取知识,也被称为预测分析 或 统计学习。
它是人工智能的核心,是使计算机具有智能的根本途径。
下面就让我们先了解一下机器学习吧。
一:学习机器学习原因和能够解决的问题
1.原因
机器学习现在已经越来越流行,并且在实际生活运用以及高级的科学问题上做出了贡献。
在早期的时候,许多系统和程序都是人为设定的决策规则,但是,人为制定的决策规则有缺点。一个是任务稍微有变化,可能需要重写系统;另一方面,还需要决策者对决策过程有很深刻的理解。
一个例子就是人脸识别,人类和计算机对人脸的描述有所不同,因此有时候需要用机器进行非常复杂的操作,并且需要机器能够自动学习和识别,这就需要让计算机机器进行机器学习。因此学习机器学习是很有必要的。
2.机器学习能够解决的问题
最成功的机器学习算法是能够将决策过程自动化的算法,从已知的示例中推导并泛化得出。这种算法叫做监督学习 。
在这种算法中,用户将成对的输入和预期输出提供给算法,算法根据输入和预期输出得到一种方法,就可以把该方法作用到其他数据集上,根据已知推测未知。这就好像有一个老师监督着算法。
监督学习算法实例:识别信封上的邮政编码,判断肿瘤大小,检测银行信用卡消费真实性。
还有一种算法是无监督学习算法。这种算法只有输入数据是已知的,没有提供输出数据,因此评估起来很困难。
无监督学习算法实例:确定系列博客主题,将客户或者好友分成不同类型的群组,检测网站的异常访问模式。
将输入数据表示成表格形式是非常有用的,每一个数据点代表行,该数据代表的属性代表列。
在机器学习中,每个实体或每一行被称为一个样本或数据点,而每一列(描述这些实体的某一个属性)则被称为特征。
必须要有有效的信息集合,才能够用某一机器学习算法进行构建机器学习模型。
二:为什么选择python作为机器学习的语言
python既有通用编程语言的强大,也有特定领域脚本语言的易用性。有很多功能库,使用它的主要优势是可以利用终端或其他类似Jupyter notebook的工具直接与代码进行交互。
三:机器学习常用库简介
1.scikit-learn
简介:它是一个开源的python库,包含了目前最先进的机器学习算法,也是最有名的python机器学习库。
用户指南:http://scikit-learn.org/stable/user_guide.html
安装scikit-learn:直接装集合了多个数据分析库的python发行版Anaconda,包含了所需的所有机器学习库。
2.Jupyter notebook
这是一个可以在浏览器中运行代码的交互环境,有很多方便的交互功能,可以用来整合代码,文本和图像。
3.NumPy
是基本的数据结构。功能包括多维数组,高级数学函数,以及伪随机数生成器等。所有的数据格式必须转化为NumPy多维数组。简称为"NumPy数组"或"数组"。
4.SciPy
SciPy是python中用于科学计算的函数集合。具有线性代数高级程序,数学函数优化,信号处理,特殊函数和统计分布等功能。
5.matplotlib
matplotlib是Python主要的科学绘图库,功能为将数据分析并生成可视化内容。一般用%matplotlib notebook和%matplotlib inline命令将图像显示在浏览器中。
6.pandas
pandas是用于处理和分析数据的Python库。它基于一种叫做DataFrame的数据结构。类似于数据库中的二维表结构。
7.mglearn
实用函数库,用户快速美化绘图,或者用户获取一些有趣的数字。
8.导入机器学习常用库
import sys
import pandas as pd
import matplotlib
import numpy as np
import scipy as sp
import ipython
import sklearn
四:机器学习流程
1.实际问题抽象成数学问题
将实际问题抽象成数学问题,目标的数学问题是一个怎样的问题,是一个分类还是回归,或聚类的问题,找到具体的问题类型,以及适合该问题可以用到哪些数据。
2.获取数据
机器学习的第一个步骤就是收集数据,收集到的数据的质量和数量将直接决定预测模型是否能够建好,将收集的数据去重复、标准化、错误修正,得到标准数据,并进行多维数组化。保存到文本文件(csv,txt,json)或者数据库中。
这里要注意,获取的数据包括获取原始数据以及从原始数据中经过特征工程从原始数据中提取训练、测试的数据。数据决定机器学习结果的上限,而算法只是尽可能的逼近这个上限。如果数据量太大可以考虑减少训练样本、降维或者使用分布式机器学习系统。
3.分析
主要是进行数据发现,找出每列的最大、最小值、平均值、方差、中位数、三分位数、四分位数、某些特定值(比如零值)所占比例或者分布规律等。了解这些最好的办法就是可视化,直观对数据进行分析。
4.特征工程
特征工程包括从原始数据中特征构建、特征提取、特征选择。特征工程能够使得算法的效果和性能得到显著的提升,有时能使简单的模型的效果比复杂的模型效果好。 数据挖掘的大部分时间就花在特征工程上面,是机器学习非常基础而又必备的步骤 。数据预处理、数据清洗、筛选显著特征、摒弃非显著特征等等都非常重要。
5.向量化
向量化是对特征提取结果的再加工,目的是增强特征的表示能力,防止模型过于复杂和学习困难,把复杂的问题简单化。
6.拆分数据集
将数据分为两部分。一方面是用于训练模型;另一方面是用于评估我们训练有素的模型的表现,来测试我们的模型是否适合。
7.模型训练
进行模型训练之前,要确定合适的算法,比如线性回归、决策树、随机森林、逻辑回归、梯度提升、SVM等等。最佳方法是测试各种不同的算法,然后通过 交叉验证 选择最好的一个。但如果训练集很小,高偏差/低方差分类器(如朴素贝叶斯分类器)要优于低偏差/高方差分类器(如k近邻分类器),更容易拟合,但是训练集大的话,低偏差/高方差就比较适合了。
8.评估
训练完成之后,通过拆分出来的训练的数据来对模型进行评估,通过真实数据和预测数据进行对比,来判定模型的好坏。常见的五个方法:混淆矩阵、提升图&洛伦兹图、基尼系数、ks曲线、roc曲线。
完成评估后,如果想进一步改善训练,我们可以通过调整模型的参数来实现,然后重复训练和评估的过程。
9.文件整理
模型训练完之后,要整理出不同含义的文件,确保模型能够正确运行。
10.接口封装,上线
通过封装封装服务接口,实现对模型的调用,以便返回预测结果。然后将整个机器学习模型上线。
python机器学习简介的更多相关文章
- Python机器学习中文版
Python机器学习简介 第一章 让计算机从数据中学习 将数据转化为知识 三类机器学习算法 第二章 训练机器学习分类算法 透过人工神经元一窥早期机器学习历史 使用Python实现感知机算法 基于Iri ...
- Python机器学习中文版目录
建议Ctrl+D保存到收藏夹,方便随时查看 人工智能(AI)学习资料库 Python机器学习简介 第一章 让计算机从数据中学习 将数据转化为知识 三类机器学习算法 第二章 训练机器学习分类算法 透过人 ...
- 机器学习1—简介及Python机器学习环境搭建
简介 前置声明:本专栏的所有文章皆为本人学习时所做笔记而整理成篇,转载需授权且需注明文章来源,禁止商业用途,仅供学习交流.(欢迎大家提供宝贵的意见,共同进步) 正文: 机器学习,顾名思义,就是研究计算 ...
- 只需十四步:从零开始掌握 Python 机器学习(附资源)
分享一篇来自机器之心的文章.关于机器学习的起步,讲的还是很清楚的.原文链接在:只需十四步:从零开始掌握Python机器学习(附资源) Python 可以说是现在最流行的机器学习语言,而且你也能在网上找 ...
- 七步精通Python机器学习--转载
作者简介: Matthew Mayo 翻译:王鹏宇 开始.这是最容易令人丧失斗志的两个字.迈出第一步通常最艰难.当可以选择的方向太多时,就更让人两腿发软了. 从哪里开始? 本文旨在通过七个步骤, ...
- 只需十四步:从零开始掌握Python机器学习(附资源)
转载:只需十四步:从零开始掌握Python机器学习(附资源) Python 可以说是现在最流行的机器学习语言,而且你也能在网上找到大量的资源.你现在也在考虑从 Python 入门机器学习吗?本教程或许 ...
- Python机器学习的步骤
原文出处: kdnuggets 译文出处:数据工匠 开始.这是最容易令人丧失斗志的两个字.迈出第一步通常最艰难.当可以选择的方向太多时,就更让人两腿发软了. 从哪里开始? 本文旨在通过七个步骤,使 ...
- 《Python机器学习及实践:从零开始通往Kaggle竞赛之路》
<Python 机器学习及实践–从零开始通往kaggle竞赛之路>很基础 主要介绍了Scikit-learn,顺带介绍了pandas.numpy.matplotlib.scipy. 本书代 ...
- Python机器学习笔记:SVM(1)——SVM概述
前言 整理SVM(support vector machine)的笔记是一个非常麻烦的事情,一方面这个东西本来就不好理解,要深入学习需要花费大量的时间和精力,另一方面我本身也是个初学者,整理起来难免思 ...
随机推荐
- vm|vmware workstation 15|14 pro 激活|密钥|序列号|许可证
VMware Workstation Pro 15 激活许可证 UY758-0RXEQ-M81WP-8ZM7Z-Y3HDA VF750-4MX5Q-488DQ-9WZE9-ZY2D6 UU54R-FV ...
- 关于苹果macOS更新到Catalina后出现的各种问题(持续更新)
一.Mac系统更新后 Git 不能用,提示 missing xcrun at:xxx xcrun: error: invalid active developer path (/Library/Dev ...
- 在Ubuntu下使用nginx-rtmp-module搭建直播系统
直播系统最简单地包括推流和拉流,在这里先使用nginx-rtmp-module作为流媒体服务器. 流媒体服务器搭建 1. nginx-rtmp-module下载和安装 源码地址:https://git ...
- JS高阶---浏览器内核
不同浏览器的内核,不太一样 360双核切换机制 一般涉及到金钱交易时,会切换到Trident内核,因为IE内核安全性较稳 不涉及金钱利益时,则会使用webkit内核 (1)内核是由很多模块构成 注意: ...
- node知识
node中的url url中的方法: parse,resolve,format: 方法parse: 例子:url.parse('http://imooc.com/course/list'); 结果:{ ...
- DNS解析过程--笔试答题版
在运维笔试的时候,回答DNS解析的过程,不能写一大堆,一是不美观,二是浪费时间,应该怎么写呢?我觉得这样写比较好. 1.客户端:chche----hosts 2.DNS服务器:cache---递归-- ...
- woocommerce如何隐藏SKU
有时我们不想在woocommerce网站前台显示SKU,如下图所示,因为sku一多整个排版可能会乱,那么要如何隐藏sku呢?随ytkah一起来看看 在当前主题的function.php文件中加入如下代 ...
- eth0: ERROR while getting interface flags: No such device的解决方法、Linux怎么修改IP以及ping不通的处理方法
首先输入ifconfig命令查看当前的ip信息 发现没有eth0这个网卡设备,有ens33 接着输入命令:ifconfig ens33 192.168.2.110 -- 修改临时ip地址,系统 ...
- python27期day16:序列化、json、pickle、hashlib、collections、软件开发规范、作业。
序列化模块:什么是序列化呢? 序列化的本质就是将一种数据结构(如字典.列表)等转换成一个特殊的序列(字符串或者bytes)的过程就叫做序列化.将这个字典直接写入文件是不可以的,必须转化成字符串的形式, ...
- LeetCode237-Delete_Node_In_A_Linked_List
delete-node-in-a-linked-list public void deleteNode(ListNode node) { node.val = node.next.val; node. ...