机器学习入门
随着人工智能的火热,数据科学领域逐渐被人们所熟知,相信你肯定也听说过诸如一些机器学习,深度学习之类让人听不懂的术语,而随着概念的火热,想进入人工智能这个领域的人越来越多,原因无他,随着这个领域的火爆未来的发展机会,发展潮流乃至薪资都是非常可人的,但是许多人虽然想进入这个领域,却发现无从下手,或者说已经了解了人工智能这个概念想开始学习机器学习,却不知道如何入门的人,今天我们就借助这篇文章,讲述一下,机器学习应该怎么样入门。
数据挖掘
要了解机器学习,首先就不得不谈到数据挖掘,所谓数据挖掘,是指在数据中挖掘有价值的信息,最早定义的数据挖掘是KDD的一个步骤,后随着挖掘的应用场景不断丰富,其技术有了长足的发展,如今的数据挖掘,其概念无论从内涵还是外延角度而言都已独立成为一门学科。
数据挖掘的特征是对客观世界的抽象,算法则是对事物运行规律内嵌逻辑的还原,算法作用于特征从而无限逼近客观事物运行规律的过程则是机器学习或者数据挖掘的过程。
数据挖掘算法分类
但凡从数据中进行有价值信息的挖掘,均可称为数据挖掘,时至今日,数据挖掘核心算法主要可分为数理统计分析算法和机器学习算法两大类
- 数理统计分析算法
- 核心算法理论基于统计学相关理论,所有模型均经过严格数学理论验证,建模过程本质上是由现有模型理论出发向外求的过程
- 机器学习算法
- 和数理统计分析算法不同,机器学习算法侧重于学习的过程,即利用数据训练模型,具体问题具体分析
数理统计分析一般流程
基于数理统计原理进行的分析,现在称作数理统计分析,也是数据挖掘的一个分支,如线性回归、时间序列等算法,至今仍然是使用最广泛的算法
数理统计分析一般遵循假设检验-建模参数选择-构建模型-建设检验评估模型-参数调优这五个步骤。
机器学习一般流程
机器学习的定义:一个计算机程序可以从经验E中学习某些类型的任务T和性能度量P,而且它在任务T中的性能(用P度量)可以随着经验E的提高而提高
机器学习鼻祖:感知机理论
随着计算机运算能力不断提升,数理统计分析大行其道。但人们并不止步于此,50年代就被提出的感知机理论在80年代再次进入公众视野,人们开始尝试使用计算机训练多层感知机,也就是现在所谓的神经网络。
神经网络算法的计算机实践是成功的,这即是神经网络算法本身诸多优秀特性所导致,也是计算机运算让神经网络迭代运算如虎添翼
算法分类
从算法理论层面来说,数理统计是基于统计学原理设计的一系列算法,大多是基于少量样本的统计推断,其算法虽然大多诞生实践较早,但在当今数据环境中仍然能够发挥巨大价值。机器学习是需要更多的计算资源及数据量支撑,计算前无需预设过多条件,运算过程会不断迭代,直至收敛。
从算法应用情景来分的话可以分为三个方面:
- 有监督学习:在有标签数据上执行的分类、回归或者预测类算法。
- 无监督学习:在无标签的数据上执行聚类、频繁项挖掘等算法。
- 半监督学习、强化学习…
数据挖掘常用算法
数理统计
机器学习
有监督学习
线性回归、逻辑回归、时间序列、岭回归、贝叶斯网络
KNN、决策树、神经网络、支持向量机
无监督学习
假设检验、参数估计
聚类分析、协同过滤、关联规则
机器学习算法分类
算法大类
代表算法
距离类模型
KNN、K-Means
线性方程模型
线性回归、岭回归、Lasso、弹性网、逻辑回归
规则类模型
树模型、Apriori、FP-Growth
条件概率模型
朴素贝叶斯、贝叶斯网络
强学习器
支持向量机、神经网络
集成算法
Bagging、Boosting
算法学习的三重境界
学习算法有三种境界:
- 掌握算法入口出口
- 理解原理,灵活调优
- 融会贯通,设计算法
第一重境界,将算法本身当做黑箱,在不知道算法具体原理的情况下能够掌握算法的基本应用情景(有监督、无监督),以及算法的基本使用情景,能够调包实现算法。
第二重境界则是能够深入了解、掌握算法原理,并在此基础上明白算法实践过程中的关键技术、核心参数,最好能够利用编程语言手动实现算法,能够解读算法执行结果,并在理解原理的基础上对通过调参对算法进行优化
最后一重境界,实际上也是算法(研发)工程师的主要工作任务,即能够结合业务场景、自身数学基础来进行有针对性的算法研发,此部分工作不仅需要扎实的算法基本原理知识,也需要扎实的编程能力。
机器学习的学习安排
理论基础讲完,接下来就是要介绍一下我们应该如何的去安排我们如何去学习机器学习了,当前主流的数据挖掘算法——机器学习大类算法并非完全由一个个独立的算法所组成,机器学习算法内部有诸多相通之处,核心思想高度一致,彼此之间处理手段也有相互借鉴的地方,因此教学过程不仅对将各个算法的核心原理、编程语言实现方法进行讲解,还需要对更为一般的机器学习方法论进行系统的讲解。我们的学习任务也分为三个阶段:
- 算法入门
- 算法大爆炸
- 高阶算法
第一阶段
第一阶段主要是进行算法入门,主要学习的是两点:核心算法和机器学习方法论
- 核心算法:基于距离的模型:KNN最近邻分类器、聚类分析(K-Means、DBSCAN和层次聚类)
- 机器学习方法论:基于距离的机器学习模型评估指标、加权距离与优化方法、学习曲线、交叉验证方法等
第二阶段
第二阶段是算法大爆炸,在有了第一阶段基本算法思维培养和基本方法论掌握的基础上,第二阶段将对当前主流机器学习算法进行讲解学习,也是分为核心算法和机器学习方法论。
- 核心算法:树模型:包括ID3、C4.5、CART等;回归分析:包括线性回归、岭回归、Lasso、广义线性回归(逻辑回归)等;贝叶斯分类器;关联规则:包括Apriori、FP-Growth、PrefixSpan等
- 机器学习方法论:机器学习算法一般流程、常用凸函数优化方法(梯度下降、最小二乘法、坐标轴下降、拟牛顿法等)、概率分类问题模型评估指标(ROC、AUC)、感知机模型基本原理
第三阶段
第三阶段也就是最后一个阶段是学习讲解当前机器学习算法的高阶算法部分,主要包括由感知机模型衍生而来的两个模型:神经网络和SVM,以及一些常用的集成方法。此部分所谓高级算法,即指其基本原理要更加艰深,也指其使用过程难度更大。
- 核心算法:神经网络,多层感知机模型;SVM,包括线性SVM分类器、高斯核SVM分类器;集成算法:Bagging和Boosting两大类算法,包括AdaBoost、随机森林等。
- 机器学习方法论:偏倚-方差评估体系、核函数方法、SMO算法原理等
算法
以上就是我么学习机器学习的三个阶段,接下来我们简单的讨论而言,在各种领域中,算法是何物。
- 在计算机领域中,算法用来调整语法结构、数据结构,从而优化程序执行效率;
- 在数学领域中,算法指的是在根据一定条件构建的模型是否有解、是否存在最优解,及获取解的过程
- 而在数据分析、数据挖掘或机器学习领域,算法用于捕捉数据背后隐藏的客观规律,去解决和实际业务高度相关的某些问题。某些时候算法是为了调整数据结构、降低程序的时间复杂度,提高计算机执行效率(如FP-Growth),多数时候算法是为了解决最优化问题(如最小二乘法、梯度下降等),更多时候算法就是一个数学模型,作用于特定的数据,产出特定的结论,解决特定的问题。
机器学习的一般流程
机器学习的一般流程是分为六个步骤:
- 提出问题:回归、分类,还是探索数据结构
- 底层核心逻辑,如自变量加权求和预测因变量
- 构建算法体系或算法方程,如
- 设置模型超参数,然后根据问题构造损失函数,损失函数是一个包含模型参数的方程
- 利用最优化算法求解损失函数极值,常用最小二乘法、梯度下降、牛顿法、坐标轴下降算法等,在求解损失函数极值的过程就是求解方程参数值的过程
- 构建模型评估指标,寻找模型优化途径,模型调参。
算法理论、编程语言与算法库
接下来我们讨论一下算法理论、编程语言和算法库这三者的关系。
首先,算法理论是此三者中最核心的知识内容,掌握算法基本理论、拥有算法素养和算法思维才能根据需求及数据情况合理选择选法、根据模型结果进行算法调优,并合理解读模型结果;
其次,算法需要利用计算机来执行,因此我们需要将算法中的人类逻辑转化为计算机逻辑交付计算机执行,此过程需要用到编程语言,但其只是算法实践的工具
最终,算法库将进一步封装算法底层执行过程,提供整洁而统一的接口给用户使用,从而降低算法使用门槛。
学习目标
最后我们树立一下我们有关机器学习的学习目标:
- 掌握常用算法的核心原理
- 掌握机器学习一般方法论
- 了解常用算法的优化方法
- 树立数据挖掘思想和机器学习思想
以上就是有关机器学习入门的步骤希望大家在看完之后可以明白什么是机器学习,并且坚定的在这条道路上走下去,紧跟时代的潮流,早日找到自己满意的一份领域内的工作,谢谢。