-
2021-05-26 12:19:55
1. 课程信息
- 课程主页:https://web.stanford.edu/class/cs224w/index.html(已经转为新一季课程了,其提供的PPT和colab内容应该会跟我使用的版本有所差别。因此原在笔记中的PPT链接已删除,如有对官方PPT的需求可直接查看该链接中最新这期的PPT)
- B站搬运视频(主讲老师是斯洛文尼亚人,一口毛子英语……中文字幕就是YouTube自带的机翻字幕):【双语字幕】斯坦福CS224W《图机器学习》课程(2021) by Jure Leskovec
- standfordonline官方上传的YouTube视频:CS224W: Machine Learning with Graphs
2. 笔记链接
- 我写的colab文件已上传到GitHub项目:cs224w-2021-winter-colab
- cs224w(图机器学习)2021冬季课程学习笔记1 Introduction; Machine Learning for Graphs
- cs224w(图机器学习)2021冬季课程学习笔记2: Traditional Methods for ML on Graphs
- colab 0是两个Python图挖掘常用包 NetworkX 和 PyTorch geometric (PyG) 的教程,我就没有专门为其写笔记了。NetworkX的教程可以参考我写的这篇:NetworkX入门教程,PyG的教程可以参考我写的这篇:PyTorch Geometric (PyG) 入门教程
- cs224w(图机器学习)2021冬季课程学习笔记3: Node Embeddings
- cs224w(图机器学习)2021冬季课程学习笔记4 Link Analysis: PageRank (Graph as Matrix)
- cs224w(图机器学习)2021冬季课程学习笔记5 Colab 1:Node Embeddings
- cs224w(图机器学习)2021冬季课程学习笔记6 Message Passing and Node Classification
- cs224w(图机器学习)2021冬季课程学习笔记7 Graph Neural Networks 1: GNN Model
- cs224w(图机器学习)2021冬季课程学习笔记8 Colab 2
- cs224w(图机器学习)2021冬季课程学习笔记9 Graph Neural Networks 2: Design Space
- cs224w(图机器学习)2021冬季课程学习笔记10 Applications of Graph Neural Networks
- cs224w(图机器学习)2021冬季课程学习笔记11 Theory of Graph Neural Networks
- cs224w(图机器学习)2021冬季课程学习笔记12 Knowledge Graph Embeddings
- cs224w(图机器学习)2021冬季课程学习笔记13 Colab 3
- cs224w(图机器学习)2021冬季课程学习笔记14 Reasoning over Knowledge Graphs
- cs224w(图机器学习)2021冬季课程学习笔记15 Frequent Subgraph Mining with GNNs
- cs224w(图机器学习)2021冬季课程学习笔记16 Community Detection in Networks
- cs224w(图机器学习)2021冬季课程学习笔记17 Traditional Generative Models for Graphs
- cs224w(图机器学习)2021冬季课程学习笔记18 Colab 4:异质图
- cs224w(图机器学习)2021冬季课程学习笔记19 Deep Generative Models for Graphs
- cs224w(图机器学习)2021冬季课程学习笔记20 Advanced Topics on GNNs
- cs224w(图机器学习)2021冬季课程学习笔记21 Scaling Up GNNs to Large Graphs
更多相关内容 -
机器学习期末考试题库(大题问答)七月在线总结.pdf
2019-12-29 19:20:37研究生本科生机器学习课程考试题库总结,题目难度均为期末考试所能涉及。up主是软件研究生,和同学一起整理了,课程考试考到了绝大多数内容,复习效果绝佳。如能合你的口味,请点赞鼓励原创。 -
图解机器学习算法(1) | 机器学习基础知识(机器学习通关指南·完结)
2022-03-09 22:35:51本文覆盖机器学习常见知识要点,包括机器学习流程、算法分类(监督学习、无监督学习、强化学习)、依托的问题场景(分类、回归、聚类、降维)、机器学习模型评估与选择等。- 作者:韩信子@ShowMeAI
- 教程地址:http://www.showmeai.tech/tutorials/34
- 本文地址:http://www.showmeai.tech/article-detail/185
- 声明:版权所有,转载请联系平台与作者并注明出处
1. 机器学习概述
1)什么是机器学习
人工智能(Artificial intelligence)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。它是一个笼统而宽泛的概念,人工智能的最终目标是使计算机能够模拟人的思维方式和行为。大概在上世纪50年代开始兴起,但是受限于数据和硬件设备等限制,当时发展缓慢。
机器学习(Machine learning)是人工智能的子集,是实现人工智能的一种途径,但并不是唯一的途径。它是一门专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能的学科。大概在上世纪80年代开始蓬勃发展,诞生了一大批数学统计相关的机器学习模型。
深度学习(Deep learning)是机器学习的子集,灵感来自人脑,由人工神经网络(ANN)组成,它模仿人脑中存在的相似结构。在深度学习中,学习是通过相互关联的「神经元」的一个深层的、多层的「网络」来进行的。「深度」一词通常指的是神经网络中隐藏层的数量。大概在2012年以后爆炸式增长,广泛应用在很多的场景中。
让我们看看国外知名学者对机器学习的定义:
机器学习研究的是计算机怎样模拟人类的学习行为,以获取新的知识或技能,并重新组织已有的知识结构,使之不断改善自身。从实践的意义上来说,机器学习是在大数据的支撑下,通过各种算法让机器对数据进行深层次的统计分析以进行「自学」,使得人工智能系统获得了归纳推理和决策能力
通过经典的「垃圾邮件过滤」应用,我们再来理解下机器学习的原理,以及定义中的T、E、P分别指代什么。
2)机器学习三要素
机器学习三要素包括数据、模型、算法。这三要素之间的关系,可以用下面这幅图来表示:
(1)数据
数据驱动:数据驱动指的是我们基于客观的量化数据,通过主动数据的采集分析以支持决策。与之相对的是经验驱动,比如我们常说的「拍脑袋」。
(2)模型&算法
模型:在AI数据驱动的范畴内,模型指的是基于数据X做决策Y的假设函数,可以有不同的形态,计算型和规则型等。
算法:指学习模型的具体计算方法。统计学习基于训练数据集,根据学习策略,从假设空间中选择最优模型,最后需要考虑用什么样的计算方法求解最优模型。通常是一个最优化的问题。
3)机器学习发展历程
人工智能一词最早出现于1956年,用于探索一些问题的有效解决方案。1960年,美国国防部借助「神经网络」这一概念,训练计算机模仿人类的推理过程。
2010年之前,谷歌、微软等科技巨头改进了机器学习算法,将查询的准确度提升到了新的高度。而后,随着数据量的增加、先进的算法、计算和存储容量的提高,机器学习得到了更进一步的发展。
4)机器学习核心技术
-
分类:应用以分类数据进行模型训练,根据模型对新样本进行精准分类与预测。
-
聚类:从海量数据中识别数据的相似性与差异性,并按照最大共同点聚合为多个类别。
-
异常检测:对数据点的分布规律进行分析,识别与正常数据及差异较大的离群点。
-
回归:根据对已知属性值数据的训练,为模型寻找最佳拟合参数,基于模型预测新样本的输出值。
5)机器学习基本流程
机器学习工作流(WorkFlow)包含数据预处理(Processing)、模型学习(Learning)、模型评估(Evaluation)、新样本预测(Prediction)几个步骤。
-
数据预处理:输入(未处理的数据 + 标签)→处理过程(特征处理+幅度缩放、特征选择、维度约减、采样)→输出(测试集 + 训练集)。
-
模型学习:模型选择、交叉验证、结果评估、超参选择。
-
模型评估:了解模型对于数据集测试的得分。
-
新样本预测:预测测试集。
6)机器学习应用场景
作为一套数据驱动的方法,机器学习已广泛应用于数据挖掘、计算机视觉、自然语言处理、生物特征识别、搜索引擎、医学诊断、检测信用卡欺诈、证券市场分析、DNA序列测序、语音和手写识别和机器人等领域。
-
智能医疗:智能假肢、外骨骼、医疗保健机器人、手术机器人、智能健康管理等。
-
人脸识别:门禁系统、考勤系统、人脸识别防盗门、电子护照及身份证,还可以利用人脸识别系统和网络,在全国范围内搜捕逃犯。
-
机器人的控制领域:工业机器人、机械臂、多足机器人、扫地机器人、无人机等。
2.机器学习基本名词
-
监督学习(Supervised Learning):训练集有标记信息,学习方式有分类和回归。
-
无监督学习(Unsupervised Learning):训练集没有标记信息,学习方式有聚类和降维。
-
强化学习(Reinforcement Learning):有延迟和稀疏的反馈标签的学习方式。
-
示例/样本:上面一条数据集中的一条数据。
-
属性/特征:「色泽」「根蒂」等。
-
属性空间/样本空间/输入空间X:由全部属性张成的空间。
-
特征向量:空间中每个点对应的一个坐标向量。
-
标记:关于示例结果的信息,如((色泽=青绿,根蒂=蜷缩,敲声=浊响),好瓜),其中「好瓜」称为标记。
-
分类:若要预测的是离散值,如「好瓜」,「坏瓜」,此类学习任务称为分类。
-
假设:学得模型对应了关于数据的某种潜在规律。
-
真相:潜在规律自身。
-
学习过程:是为了找出或逼近真相。
-
泛化能力:学得模型适用于新样本的能力。一般来说,训练样本越大,越有可能通过学习来获得具有强泛化能力的模型。
3.机器学习算法分类
1)机器学习算法依托的问题场景
机器学习在近30多年已发展为一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动「学习」的算法。
机器学习算法从数据中自动分析获得规律,并利用规律对未知数据进行预测。机器学习理论关注可以实现的、行之有效的学习算法。很多推论问题属于无程序可循难度,所以部分的机器学习研究是开发容易处理的近似算法。
机器学习最主要的类别有:监督学习、无监督学习和强化学习。
监督学习:从给定的训练数据集中学习出一个函数,当新的数据到来时,可以根据这个函数预测结果。监督学习的训练集要求是包括输入和输出,也可以说是特征和目标。训练集中的目标是由人标注的。常见的监督学习算法包括回归分析和统计分类。
- 更多监督学习的算法模型总结可以查看ShowMeAI的文章 AI知识技能速查 | 机器学习-监督学习。
无监督学习:与监督学习相比,训练集没有人为标注的结果。常见的无监督学习算法有生成对抗网络(GAN)、聚类。
- 更多无监督学习的算法模型总结可以查看ShowMeAI的文章 AI知识技能速查 | 机器学习-无监督学习。
强化学习:通过观察来学习做成如何的动作。每个动作都会对环境有所影响,学习对象根据观察到的周围环境的反馈来做出判断。
2)分类问题
分类问题是机器学习非常重要的一个组成部分。它的目标是根据已知样本的某些特征,判断一个新的样本属于哪种已知的样本类。分类问题可以细分如下:
-
二分类问题:表示分类任务中有两个类别新的样本属于哪种已知的样本类。
-
多类分类(Multiclass classification)问题:表示分类任务中有多类别。
-
多标签分类(Multilabel classification)问题:给每个样本一系列的目标标签。
了解更多机器学习分类算法:KNN算法、逻辑回归算法、朴素贝叶斯算法、决策树模型、随机森林分类模型、GBDT模型、XGBoost模型、支持向量机模型等。
3)回归问题
了解更多机器学习回归算法:决策树模型、随机森林分类模型、GBDT模型、回归树模型、支持向量机模型等。
4)聚类问题
了解更多机器学习聚类算法:聚类算法。
5)降维问题
了解更多机器学习降维算法:PCA降维算法。
4.机器学习模型评估与选择
1)机器学习与数据拟合
机器学习最典型的监督学习为分类与回归问题。分类问题中,我们学习出来一条「决策边界」完成数据区分;在回归问题中,我们学习出拟合样本分布的曲线。
2)训练集与数据集
我们以房价预估为例,讲述一下涉及的概念。
-
训练集(Training Set):帮助训练模型,简单的说就是通过训练集的数据让确定拟合曲线的参数。
-
测试集(Test Set):为了测试已经训练好的模型的精确度。
当然,test set这并不能保证模型的正确性,只是说相似的数据用此模型会得出相似的结果。因为在训练模型的时候,参数全是根据现有训练集里的数据进行修正、拟合,有可能会出现过拟合的情况,即这个参数仅对训练集里的数据拟合比较准确,这个时候再有一个数据需要利用模型预测结果,准确率可能就会很差。
3)经验误差
在训练集的数据上进行学习。模型在训练集上的误差称为「经验误差」(Empirical Error)。但是经验误差并不是越小越好,因为我们希望在新的没有见过的数据上,也能有好的预估结果。
4)过拟合
过拟合,指的是模型在训练集上表现的很好,但是在交叉验证集合测试集上表现一般,也就是说模型对未知样本的预测表现一般,泛化(Generalization)能力较差。
如何防止过拟合呢?一般的方法有Early Stopping、数据集扩增(Data Augmentation)、正则化、Dropout等。
-
正则化:指的是在目标函数后面添加一个正则化项,一般有L1正则化与L2正则化。L1正则是基于L1范数,即在目标函数后面加上参数的L1范数和项,即参数绝对值和与参数的积项。
-
数据集扩增:即需要得到更多的符合要求的数据,即和已有的数据是独立同分布的,或者近似独立同分布的。一般方法有:从数据源头采集更多数据、复制原有数据并加上随机噪声、重采样、根据当前数据集估计数据分布参数,使用该分布产生更多数据等。
-
DropOut:通过修改神经网络本身结构来实现的。
5)偏差
偏差(Bias),它通常指的是模型拟合的偏差程度。给定无数套训练集而期望拟合出来的模型就是平均模型。偏差就是真实模型和平均模型的差异。
简单模型是一组直线,平均之后得到的平均模型是一条直的虚线,与真实模型曲线的差别较大(灰色阴影部分较大)。因此,简单模型通常高偏差 。
复杂模型是一组起伏很大波浪线,平均之后最大值和最小组都会相互抵消,和真实模型的曲线差别较小,因此复杂模型通常低偏差(见黄色曲线和绿色虚线几乎重合)。
6)方差
方差(Variance),它通常指的是模型的平稳程度(简单程度)。简单模型的对应的函数如出一辙,都是水平直线,而且平均模型的函数也是一条水平直线,因此简单模型的方差很小,并且对数据的变动不敏感。
复杂模型的对应的函数千奇百怪,毫无任何规则,但平均模型的函数也是一条平滑的曲线,因此复杂模型的方差很大,并且对数据的变动很敏感。
7)偏差与方差的平衡
8)性能度量指标
性能度量是衡量模型泛化能力的数值评价标准,反映了当前问题(任务需求)。使用不同的性能度量可能会导致不同的评判结果。更详细的内容可见 模型评估方法与准则
(1)回归问题
关于模型「好坏」的判断,不仅取决于算法和数据,还取决于当前任务需求。回归问题常用的性能度量指标有:平均绝对误差、均方误差、均方根误差、R平方等。
-
平均绝对误差(Mean Absolute Error,MAE),又叫平均绝对离差,是所有标签值与回归模型预测值的偏差的绝对值的平均。
-
平均绝对百分误差(Mean Absolute Percentage Error,MAPE)是对MAE的一种改进,考虑了绝对误差相对真实值的比例。
-
均方误差(Mean Square Error,MSE)相对于平均绝对误差而言,均方误差求的是所有标签值与回归模型预测值的偏差的平方的平均。
-
均方根误差(Root-Mean-Square Error,RMSE),也称标准误差,是在均方误差的基础上进行开方运算。RMSE会被用来衡量观测值同真值之间的偏差。
-
R平方,决定系数,反映因变量的全部变异能通过目前的回归模型被模型中的自变量解释的比例。比例越接近于1,表示当前的回归模型对数据的解释越好,越能精确描述数据的真实分布。
(2)分类问题
分类问题常用的性能度量指标包括错误率(Error Rate)、精确率(Accuracy)、查准率(Precision)、查全率(Recall)、F1、ROC曲线、AUC曲线和R平方等。更详细的内容可见 模型评估方法与准则
-
错误率:分类错误的样本数占样本总数的比例。
-
精确率:分类正确的样本数占样本总数的比例。
-
查准率(也称准确率),即在检索后返回的结果中,真正正确的个数占你认为是正确的结果的比例。
-
查全率(也称召回率),即在检索结果中真正正确的个数,占整个数据集(检索到的和未检索到的)中真正正确个数的比例。
-
F1是一个综合考虑查准率与查全率的度量,其基于查准率与查全率的调和平均定义:即:F1度量的一般形式-Fβ,能让我们表达出对查准率、查全率的不同偏好。
ROC曲线(Receiver Operating Characteristic Curve)全称是「受试者工作特性曲线」。综合考虑了概率预测排序的质量,体现了学习器在不同任务下的「期望泛化性能」的好坏。ROC曲线的纵轴是「真正例率」(TPR),横轴是「假正例率」(FPR)。
AUC(Area Under ROC Curve)是ROC曲线下面积,代表了样本预测的排序质量。
从一个比较高的角度来认识AUC:仍然以异常用户的识别为例,高的AUC值意味着,模型在能够尽可能多地识别异常用户的情况下,仍然对正常用户有着一个较低的误判率(不会因为为了识别异常用户,而将大量的正常用户给误判为异常。
9)评估方法
我们手上没有未知的样本,如何可靠地评估?关键是要获得可靠的「测试集数据」(Test Set),即测试集(用于评估)应该与训练集(用于模型学习)「互斥」。
常见的评估方法有:留出法(Hold-out)、交叉验证法( Cross Validation)、自助法(Bootstrap)。更详细的内容可见 模型评估方法与准则
留出法(Hold-out)是机器学习中最常见的评估方法之一,它会从训练数据中保留出验证样本集,这部分数据不用于训练,而用于模型评估。
机器学习中,另外一种比较常见的评估方法是交叉验证法( Cross Validation)。k 折交叉验证对 k 个不同分组训练的结果进行平均来减少方差,因此模型的性能对数据的划分就不那么敏感,对数据的使用也会更充分,模型评估结果更加稳定。
自助法(Bootstrap)是一种用小样本估计总体值的一种非参数方法,在进化和生态学研究中应用十分广泛。
Bootstrap通过有放回抽样生成大量的伪样本,通过对伪样本进行计算,获得统计量的分布,从而估计数据的整体分布。
10)模型调优与选择准则
我们希望找到对当前问题表达能力好,且模型复杂度较低的模型:
-
表达力好的模型,可以较好地对训练数据中的规律和模式进行学习;
-
复杂度低的模型,方差较小,不容易过拟合,有较好的泛化表达。
11)如何选择最优的模型
(1)验证集评估选择
-
切分数据为训练集和验证集。
-
对于准备好的候选超参数,在训练集上进行模型,在验证集上评估。
(2)网格搜索/随机搜索交叉验证
-
通过网格搜索/随机搜索产出候选的超参数组。
-
对参数组的每一组超参数,使用交叉验证评估效果。
-
选出效果最好的超参数。
(3)贝叶斯优化
- 基于贝叶斯优化的超参数调优。
视频教程
可以点击 B站 查看视频的【双语字幕】版本
【双语字幕+资料下载】斯坦福CS229 | 机器学习-吴恩达主讲(2018·完整版)
【双语字幕+资料下载】斯坦福CS229 | 机器学习-吴恩达主讲(2018·完整版)
https://www.bilibili.com/video/BV1TT4y127Nf
ShowMeAI图解机器学习算法系列(完整版)
- ShowMeAI 图解机器学习算法(1) | 机器学习基础知识
- ShowMeAI 图解机器学习算法(2) | 模型评估方法与准则
- ShowMeAI 图解机器学习算法(3) | KNN算法及其应用
- ShowMeAI 图解机器学习算法(4) | 逻辑回归算法详解
- ShowMeAI 图解机器学习算法(5) | 朴素贝叶斯算法详解
- ShowMeAI 图解机器学习算法(6) | 决策树模型详解
- ShowMeAI 图解机器学习算法(7) | 随机森林分类模型详解
- ShowMeAI 图解机器学习算法(8) | 回归树模型详解
- ShowMeAI 图解机器学习算法(9) | GBDT模型详解
- ShowMeAI 图解机器学习算法(10) | XGBoost模型最全解析
- ShowMeAI 图解机器学习算法(11) | LightGBM模型详解
- ShowMeAI 图解机器学习算法(12) | 支持向量机模型详解
- ShowMeAI 图解机器学习算法(13) | 聚类算法详解
- ShowMeAI 图解机器学习算法(14) | PCA降维算法详解
ShowMeAI系列教程精选推荐
- 大厂技术实现:推荐与广告计算解决方案
- 大厂技术实现:计算机视觉解决方案
- 大厂技术实现:自然语言处理行业解决方案
- 图解Python编程:从入门到精通系列教程
- 图解数据分析:从入门到精通系列教程
- 图解AI数学基础:从入门到精通系列教程
- 图解大数据技术:从入门到精通系列教程
- 图解机器学习算法:从入门到精通系列教程
- 机器学习实战:手把手教你玩转机器学习系列
- 深度学习教程:吴恩达专项课程 · 全套笔记解读
- 自然语言处理教程:斯坦福CS224n课程 · 课程带学与全套笔记解读
- 深度学习与计算机视觉教程:斯坦福CS231n · 全套笔记解读
-
机器学习深度学习 PPT
2018-01-23 09:51:08机器学习 深度学习机器学习 深度学习机器学习 深度学习机器学习 深度学习机器学习 深度学习机器学习 深度学习机器学习 深度学习机器学习 深度学习机器学习 深度学习机器学习 深度学习机器学习 深度学习机器学习 深度... -
李宏毅 机器学习 课程作业代码
2018-08-17 19:38:58李宏毅 机器学习 课程作业代码李宏毅 机器学习 课程作业代码李宏毅 机器学习 课程作业代码李宏毅 机器学习 课程作业代码李宏毅 机器学习 课程作业代码李宏毅 机器学习 课程作业代码李宏毅 机器学习 课程作业代码... -
【建议收藏】图解十大经典机器学习算法——带你入门机器学习
2021-07-18 18:27:24机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的...目录
机器学习
机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。它是人工智能的基础,更是我们现在社会进步的源泉。
随着社会的进步和发展,我们在科技领域不断的创新,当人类的第一台计算机诞生之后,技术的迭代就已经被装上了风火轮了。我们希望计算机可以帮助我们计算我们人类无法涉及到的领域,但是野心永远是人类进化的动力,我们还希望我们的机器可以帮助我们解决我们的工作,那么机器学习就应运而生了。
人工智能是追求目标,机器学习是实现手段,深度学习是其中一种方法
机器学习的步骤
作为一个初学者,机器学习需要掌握怎样的技术呢?首先必须要有一门熟练的编程语言
Python,Java,R语言.....其实Python主要在一些大数据集模型背后占有强大的优势,而R语言在科研统计比较的吃香,因为R语言拥有很多个第三方程序包,利用少量简洁的代码就可以解决我们的科研工作。
1. 选择一个合适的模型,这通常需要依据实际问题而定,针对不同的问题和任务需要选取恰当的模型,模型就是一组函数的集合。
2、判断一个函数的好坏,这需要确定一个衡量标准,也就是我们通常说的损失函数(Loss Function),损失函数的确定也需要依据具体问题而定,如回归问题一般采用欧式距离,分类问题一般采用交叉熵代价函数。
3、找出“最好”的函数,如何从众多函数中最快的找出“最好”的那一个,这一步是最大的难点,做到又快又准往往不是一件容易的事情。常用的方法有梯度下降算法,最小二乘法等和其他一些技巧(tricks)。这就是为什么我们说机器学习,底层基础是数学理论,其他的应该在编程上面下功夫
差不多认识了我们机器学习,接下来我们就开始从机器学习最常见的10大算法入门,介绍它们的概念知识,最后我们将开启机器学习的大门,详细记录我们学习过程中的点点滴滴!
在机器学习领域,有种说法叫做“世上没有免费的午餐”,简而言之,它是指没有任何一种算法能在每个问题上都能有最好的效果,这个理论在监督学习方面体现得尤为重要。
举个例子来说,你不能说神经网络永远比决策树好,反之亦然。模型运行被许多因素左右,例如数据集的大小和结构。
因此,你应该根据你的问题尝试许多不同的算法,同时使用数据测试集来评估性能并选出最优项。
当然,你尝试的算法必须和你的问题相切合,其中的门道便是机器学习的主要任务。打个比方,如果你想打扫房子,你可能会用到吸尘器、扫帚或者拖把,但你肯定不会拿把铲子开始挖坑吧。这个道理很多人都懂,哈哈哈。
01 线性回归
线性回归可能是统计学和机器学习中最知名和最易理解的算法之一。
由于预测建模主要关注最小化模型的误差,或者以可解释性为代价来做出最准确的预测。 我们会从许多不同领域借用、重用和盗用算法,其中涉及一些统计学知识。
线性回归用一个等式表示,通过找到输入变量的特定权重(B),来描述输入变量(x)与输出变量(y)之间的线性关系。
Linear Regression
举例:y = B0 + B1 * x
给定输入x,我们将预测y,线性回归学习算法的目标是找到系数B0和B1的值。
可以使用不同的技术从数据中学习线性回归模型,例如用于普通最小二乘和梯度下降优化的线性代数解。
线性回归已经存在了200多年,并且已经进行了广泛的研究。 如果可能的话,使用这种技术时的一些经验法则是去除非常相似(相关)的变量并从数据中移除噪声。 这是一种快速简单的技术和良好的第一种算法。
02 逻辑回归
逻辑回归是机器学习从统计领域借鉴的另一种技术。 这是二分类问题的专用方法(两个类值的问题)。
逻辑回归与线性回归类似,这是因为两者的目标都是找出每个输入变量的权重值。 与线性回归不同的是,输出的预测值得使用称为逻辑函数的非线性函数进行变换。
逻辑函数看起来像一个大S,并能将任何值转换为0到1的范围内。这很有用,因为我们可以将相应规则应用于逻辑函数的输出上,把值分类为0和1(例如,如果IF小于0.5,那么 输出1)并预测类别值。
Logistic Regression
由于模型的特有学习方式,通过逻辑回归所做的预测也可以用于计算属于类0或类1的概率。这对于需要给出许多基本原理的问题十分有用。
与线性回归一样,当你移除与输出变量无关的属性以及彼此非常相似(相关)的属性时,逻辑回归确实会更好。 这是一个快速学习和有效处理二元分类问题的模型。
03 线性判别分析
传统的逻辑回归仅限于二分类问题。 如果你有两个以上的类,那么线性判别分析算法(Linear Discriminant Analysis,简称LDA)是首选的线性分类技术。
LDA的表示非常简单。 它由你的数据的统计属性组成,根据每个类别进行计算。 对于单个输入变量,这包括:
-
每类的平均值。
-
跨所有类别计算的方差。
Linear Discriminant Analysis
LDA通过计算每个类的判别值并对具有最大值的类进行预测来进行。该技术假定数据具有高斯分布(钟形曲线),因此最好先手动从数据中移除异常值。这是分类预测建模问题中的一种简单而强大的方法。
04 分类和回归树
决策树是机器学习的一种重要算法。
决策树模型可用二叉树表示。对,就是来自算法和数据结构的二叉树,没什么特别。 每个节点代表单个输入变量(x)和该变量上的左右孩子(假定变量是数字)。
Decision Tree
树的叶节点包含用于进行预测的输出变量(y)。 预测是通过遍历树进行的,当达到某一叶节点时停止,并输出该叶节点的类值。
决策树学习速度快,预测速度快。 对于许多问题也经常预测准确,并且你不需要为数据做任何特殊准备。
05 朴素贝叶斯
朴素贝叶斯是一种简单但极为强大的预测建模算法。
该模型由两种类型的概率组成,可以直接从你的训练数据中计算出来:1)每个类别的概率; 2)给定的每个x值的类别的条件概率。 一旦计算出来,概率模型就可以用于使用贝叶斯定理对新数据进行预测。 当你的数据是数值时,通常假设高斯分布(钟形曲线),以便可以轻松估计这些概率。
Bayes Theorem
朴素贝叶斯被称为朴素的原因,在于它假设每个输入变量是独立的。 这是一个强硬的假设,对于真实数据来说是不切实际的,但该技术对于大范围内的复杂问题仍非常有效。
06 K近邻
KNN算法非常简单而且非常有效。KNN的模型用整个训练数据集表示。 是不是特简单?
通过搜索整个训练集内K个最相似的实例(邻居),并对这些K个实例的输出变量进行汇总,来预测新的数据点。 对于回归问题,新的点可能是平均输出变量,对于分类问题,新的点可能是众数类别值。
成功的诀窍在于如何确定数据实例之间的相似性。如果你的属性都是相同的比例,最简单的方法就是使用欧几里德距离,它可以根据每个输入变量之间的差直接计算。
K-Nearest Neighbors
KNN可能需要大量的内存或空间来存储所有的数据,但只有在需要预测时才会执行计算(或学习)。 你还可以随时更新和管理你的训练集,以保持预测的准确性。
距离或紧密度的概念可能会在高维环境(大量输入变量)下崩溃,这会对算法造成负面影响。这类事件被称为维度诅咒。它也暗示了你应该只使用那些与预测输出变量最相关的输入变量。
07 学习矢量量化
K-近邻的缺点是你需要维持整个训练数据集。 学习矢量量化算法(或简称LVQ)是一种人工神经网络算法,允许你挂起任意个训练实例并准确学习他们。
Learning Vector Quantization
LVQ用codebook向量的集合表示。开始时随机选择向量,然后多次迭代,适应训练数据集。 在学习之后,codebook向量可以像K-近邻那样用来预测。 通过计算每个codebook向量与新数据实例之间的距离来找到最相似的邻居(最佳匹配),然后返回最佳匹配单元的类别值或在回归情况下的实际值作为预测。 如果你把数据限制在相同范围(如0到1之间),则可以获得最佳结果。
如果你发现KNN在您的数据集上给出了很好的结果,请尝试使用LVQ来减少存储整个训练数据集的内存要求。
08 支持向量机
支持向量机也许是最受欢迎和讨论的机器学习算法之一。
超平面是分割输入变量空间的线。 在SVM中,会选出一个超平面以将输入变量空间中的点按其类别(0类或1类)进行分离。在二维空间中可以将其视为一条线,所有的输入点都可以被这条线完全分开。SVM学习算法就是要找到能让超平面对类别有最佳分离的系数。
Support Vector Machine
超平面和最近的数据点之间的距离被称为边界,有最大边界的超平面是最佳之选。同时,只有这些离得近的数据点才和超平面的定义和分类器的构造有关,这些点被称为支持向量,他们支持或定义超平面。在具体实践中,我们会用到优化算法来找到能最大化边界的系数值。
SVM可能是最强大的即用分类器之一,在你的数据集上值得一试。
09 bagging和随机森林
随机森林是最流行和最强大的机器学习算法之一。 它是一种被称为Bootstrap Aggregation或Bagging的集成机器学习算法。
bootstrap是一种强大的统计方法,用于从数据样本中估计某一数量,例如平均值。 它会抽取大量样本数据,计算平均值,然后平均所有平均值,以便更准确地估算真实平均值。
在bagging中用到了相同的方法,但最常用到的是决策树,而不是估计整个统计模型。它会训练数据进行多重抽样,然后为每个数据样本构建模型。当你需要对新数据进行预测时,每个模型都会进行预测,并对预测结果进行平均,以更好地估计真实的输出值。
Random Forest
随机森林是对决策树的一种调整,相对于选择最佳分割点,随机森林通过引入随机性来实现次优分割。
因此,为每个数据样本创建的模型之间的差异性会更大,但就自身意义来说依然准确无误。结合预测结果可以更好地估计正确的潜在输出值。
如果你使用高方差算法(如决策树)获得良好结果,那么加上这个算法后效果会更好。
10 Boosting和AdaBoost
Boosting是一种从一些弱分类器中创建一个强分类器的集成技术。 它先由训练数据构建一个模型,然后创建第二个模型来尝试纠正第一个模型的错误。 不断添加模型,直到训练集完美预测或已经添加到数量上限。
AdaBoost是为二分类开发的第一个真正成功的Boosting算法,同时也是理解Boosting的最佳起点。 目前基于AdaBoost而构建的算法中最著名的就是随机梯度boosting。
AdaBoost
AdaBoost常与短决策树一起使用。 在创建第一棵树之后,每个训练实例在树上的性能都决定了下一棵树需要在这个训练实例上投入多少关注。难以预测的训练数据会被赋予更多的权重,而易于预测的实例被赋予更少的权重。 模型按顺序依次创建,每个模型的更新都会影响序列中下一棵树的学习效果。在建完所有树之后,算法对新数据进行预测,并且通过训练数据的准确程度来加权每棵树的性能。
-
数据的大小,质量和性质;
-
可用的计算时间;
-
任务的紧迫性;
-
你想要对数据做什么。
是我们选择那种机器学习算法的关键
scikit-learn作为一个丰富的python机器学习库,实现了绝大多数机器学习的算法,有相当多的人在使用,于是我这里很无耻地把machine learning cheat sheet for sklearn搬过来了,原文可以看这里。哈哈,既然讲机器学习,我们就用机器学习的语言来解释一下,这是针对实际应用场景的各种条件限制,对scikit-learn里完成的算法构建的一颗决策树,每一组条件都是对应一条路径,能找到相对较为合适的一些解决方法,具体如下:
每文一语
既然选择,就像当时一样,不问未来
-
-
机器学习学习路线
2022-01-14 17:12:28学习路线一、入门ML需要的基本技能1.1 数学(略)1.2 编程语言python二、ML基本理论知识2.1 视频课程2.2 书籍、博客2.3 实战三、深度学习理论知识3.1 框架学习3.2 计算机视觉3.3 自然语言处理3.4 实战3.6 进一步学习...学习路线
一、入门ML需要的基本技能
1.1 数学(略)
本科期间的高数、线性代数、概率论相关基础知识
有多余时间可以看看研究生需要学的矩阵论、凸优化等内容1.2 编程语言python
理解基本语法,会调用一些常用的模块即可
有时间可以学习用python进行一些数据分析,爬虫等操作如
主要学习numpy,pandas,scikit-learn 等python包。推荐:简书博客:《利用Python进行数据分析·第2版》
B站:Python爬虫编程基础5天速成(2021全新合集)Python入门+数据分析二、ML基本理论知识
2.1 视频课程
Ng的课程非常出名,还有台湾李宏毅老师的课程,这两位老师的课程都可以在B站搜到
每年都有更新,另外翻一翻地下评论,会有大佬列出笔记、代码实现等等
1、B站:吴恩达cousera机器学习
2、B站:吴恩达Stanford_CS229
3、B站:李宏毅机器学习推荐:先1后2
2.2 书籍、博客
西瓜书(周志华 机器学习)
花书(深度学习)
李航 统计学习方法关于推导可以看看B站白板推导机器学习
简单看看就好,注意时间:时间多的话可以看看底层代码,知道输入输出参数具体含义是啥就好,属实没必要动手亲自写。时间少,能理解概念就好
2.3 实战
kaggle
三、深度学习理论知识
深度学习主要有两个热门的分支1、计算机视觉CV 2、 自然语言处理NLP
3.1 框架学习
pytorh 或者 tensorflow
B站刘二大人:《PyTorch深度学习实践》完结合集
代码1
代码23.2 计算机视觉
B站:斯坦福李飞飞cs231n计算机视觉课程
看到RNN即可(1-22)
完成前两个作业3.3 自然语言处理
B站:CS224n 斯坦福深度自然语言处理课
看P1-5 8 9 11
作业 a1 a2 a3 a5
邱锡鹏老师的书3.4 实战
阿里云天池大赛
1、新闻文本分类
赛题解析、分析数据、基于机器学习文本分类
看看不同模型作文本分析的效果,怎样优化1、2、3、4
2、街道符号识别
赛题解析、数据分析、模型构建、模型训练与验证、模型的集成3.6 进一步学习
1、B站李沐老师
2、《白面机器学习》,代码
3、复现最新论文本文大部分内容由B站up @NLP从入门到放弃的 三个月从零入门深度学习,保姆级学习路线图视频整理。讲的肥肠详细,推荐大家康康
下面我去学习啦!!!这篇文章也会随着我的学习进度而更新(主要是更新一些学习感受以及提醒大家避免的坑)
-
入门篇:医学影像组学与机器学习(进入飞桨Aistudio平台,不用配置环境,开箱即用)
2021-04-03 09:33:58背景 影像组学的概念最早由荷兰学者在2012年提出,其强调的深层次含义是指从影像(CT、MRI、PET等)中...发现特征处理、建立模型、分类/预测这些步骤方法涉及机器学习。 所以一边学习一边做记录,过一下影像组学的流程 -
深入理解机器学习——机器学习概览
2021-10-06 15:25:55机器学习算法是一种能够从数据中学习的算法。卡耐基梅隆大学计算机科学学院机器学习系主任Mitchell给出了机器学习算法的定义:对于某类任务TTT和性能度量PPP,一个计算机程序被认为可以从经验EEE中学习是指,通过... -
机器学习系列2 机器学习的公平性
2022-04-15 19:23:43在本文中您将学习到 0 提高对机器学习中公平性重要性的认识。 1 了解与公平相关的危害 2 了解不公平评估和缓解措施。 -
【Python机器学习】01_机器学习概述
2022-01-26 22:04:51近年来,人工智能一词频繁出现在我们的视野...而机器学习又是人工智能的一大重要分支,所以学习机器学习也是一个很好的选择。本系列文章将使用通俗的语言讲解机器学习,并使用scikit-learn模块实现常用的机器学习算法。 -
cs224w(图机器学习)2021冬季课程学习笔记2: Traditional Methods for ML on Graphs
2021-05-27 20:02:42cs224w(图机器学习)2021冬季课程学习笔记2. Traditional Methods for ML on Graphs 1. 章节前言 2. Traditional Feature-based Methods: Node 3. Traditional Feature-based Methods: Link 4. Traditional Feature... -
机器学习心得
2021-10-27 14:03:221. 机器学习的概念: 解释1:机器学习是一门通过编程让计算机从数据中进行学习的学科。 解释2:机器学习是一个研究领域,让计算机无须进行明确的编程就具备学习能力。 解释2:一个计算机程序利用经验E来学习任务T... -
机器学习是什么?我对机器学习的理解
2022-03-08 23:02:45我对机器学习的理解 -
如何识别图片文字,PaddleOCR机器学习开源项目使用 | 机器学习
2021-11-15 16:22:551、安装Anaconda,构造虚拟环境 这里可以参考我的另一篇文章,里面很详细:机器学习基础环境部署 | 机器学习系列_阿良的博客-CSDN博客_机器学习 环境搭建 官方给的是python3.8的虚拟环境,我们也构造一个,打开... -
十大机器学习算法
2022-03-08 22:55:09初学者应该知道的十大机器学习算法 来源:https://builtin.com/data-science/tour-top-10-algorithms-machine-learning-newbies 机器学习算法被描述为学习一个目标函数 (f),它最好地将输入变量 (X) 映射到输出... -
总结:图像识别的机器学习方法
2020-12-13 18:45:22图像识别的机器学习方法: 一般流程: 1)特征提取 2)特征分类 线性分类器 : Softmax/Logistic Regression 线性分类器=模板匹配 图像特征描述: 全局特征:直方图, 模板 局部特征:HOG, SIFT, SC, ... -
当机器学习遇上隐私保护,聊聊联邦学习和分布式机器学习
2021-06-29 00:51:39当然了,截止到目前,机器学习中尚没有出现一个明确称之为“去中心化机器学习”的专用名词,但是意思相近的概念是有的,譬如说分布式,这也算是去中心化的近义词了,机器学习就有“分布式机器学习”,而且已经是个老... -
机器学习期末考试
2021-06-05 00:28:12机器学习期末考试 一、机器学习链接 1、机器学习期末复习试卷_zhouyan2000的博客-CSDN博客_机器学习期末考试} 2、[机器学习笔试题]((4条消息) 机器学习笔试题目_北冥有小鱼-CSDN博客_机器学习题目) 3、机器学习面试... -
什么是机器学习?机器学习与AI的关系?
2021-02-26 11:56:15而这类问题正是机器学习所能够解决的。 传统上来讲,计算机编程指在结构化的数据上执行明确的程序规则。软件开发人员动手编写程序,告诉计算机如何对数据执行一组指令,并输出预期的结果,如图1-1所示。这个过程与... -
机器学习之深度学习
2021-11-10 15:58:36机器学习的本质: 特征自动学习 在机器学习中,获得好的特征是识别成功的关键 一般而言,特征越多,给出的信息就越多,识别准确性会得到提升。 但是如果特征多,那么计算的复杂度就会增加,探索的空间大,可以... -
机器学习基础环境部署 | 机器学习系列
2021-10-31 14:50:53本文主要是分享一下机器学习初期,基本的环境搭建。也适用于其他python工程化项目环境搭建。都差不多。 Anaconda安装 anaconda官方链接:Anaconda | The World's Most Popular Data Science Platform 点击Get... -
机器学习算法地图
2018-07-05 12:10:07其它机器学习、深度学习算法的全面系统讲解可以阅读《机器学习-原理、算法与应用》,清华大学出版社,雷明著,由SIGAI公众号作者倾力打造。 书的购买链接 书的勘误,优化,源代码资源 文章《机器学习算法地图》系... -
学习曲线 机器学习_机器学习的学习曲线
2020-07-13 17:25:54学习曲线 机器学习Diagnose Bias and Variance to Reduce Error 诊断偏差和方差以减少误差 When building machine learning models, we want to keep error as low as possible. Two major sources of error are ... -
开始学习机器学习之前你必须要了解的知识有哪些?机器学习系列入门篇
2021-09-07 18:07:33距离上次介绍机器学习相关的内容,已经过了一年的时间了,而这篇博客目前的阅读量也将近3000k,这样数据看起来似乎也还算不错,可惜因为我当时没有足够的时间和精力去完整把这篇博客写完,只介绍了机器学习的基础... -
机器学习实战:手把手教你玩转机器学习系列
2022-03-21 20:58:42Python机器学习实战系列教程,以案例和代码驱动的方式,帮助大家学习机器学习算法应用流程和各个链条环节,掌握构建场景建模解决方案并进行效果调优的能力。 -
机器学习教程 - 分步指南
2021-12-10 20:24:07机器学习 (ML)是技术领域最受关注的话题之一。如果你已经了解机器学习和相关技术的基础知识以及它的应用领域,本文将对这些知识进行补充。如果你还不熟悉机器学习,本教程中涵盖的基础知识会帮你快速上手。文章较长... -
机器学习建模流程
2022-03-25 19:48:02机器学习实战 机器学习三把斧 1.数据清洗 1.1缺失值的处理 某一列的特征缺失值达到40%左右,删除这个特征值;或者某一个样本的缺失值过大,那么删除这个样本。 而当某个特征的缺失值较少的时候,不能删除这个特征... -
【机器学习】python实现吴恩达机器学习作业合集(含数据集)
2022-04-04 20:17:01问题描述和流程图 滑动窗口分类算法(CV) 获取大量数据和人工数据 以下是零碎: 现有的机器学习种类繁多,我们一般可以进行如下的分类标准: 是否在人类监督下学习(监督学习、非监督学习、半监督学习和强化学习)... -
机器学习开发框架
2021-11-12 09:28:02机器学习开发框架本质上是一种编程库或工具,目的是能够让开发人员更容易、更快速地构建机器学习模型。 机器学习开发框架封装了大量的可重用代码,可以直接调用,目的是避免“重复造轮子”,大幅降低开发人员的开发...