
定义:机器学习是一种人工智能(AI)的分支,它使用计算机算法和模型,帮助计算机系统从数据中自动学习和改进,而不需要明确地进行编程。这种学习和改进过程基于大量数据和统计分析,可以帮助计算机系统更好地理解和识别模式,从而能够自动化实现复杂的任务,并不断改进自身的性能和准确性。机器学习被广泛应用于各个领域,如自然语言处理,图像识别,机器翻译,推荐系统,金融风险评估等。
机器学习是什么?
类型:机器学习主要有三种类型:监督学习、无监督学习和强化学习。

监督学习:监督学习是指机器学习系统通过从已知的训练数据中学习,来预测新数据的标签或结果。在监督学习中,训练集数据包含输入数据和对应的输出标签,机器学习系统通过对训练集数据的学习,来学习输入数据与输出标签之间的关系,从而对新数据进行预测或分类。
训练样本 = 特征(feature) + 目标变量(label: 分类-离散值/回归-连续值)
无监督学习:无监督学习是指机器学习系统从未标记的数据中学习,来发现数据中的模式和结构。在无监督学习中,数据没有预先定义的标签或结果,机器学习系统通过对数据的学习,来发现数据中的隐藏结构和模式,从而对数据进行聚类、降维等操作
强化学习:强化学习是指机器学习系统通过与环境的交互来学习,从而达到最大化累积奖励的目标。在强化学习中,机器学习系统通过与环境的交互,来学习采取不同的动作对应的奖励或惩罚,从而逐步学习最优策略,达到最大化累积奖励的目标。
深度学习?

人工智能(Artificial Intelligence,简称AI)是范围最大的概念,它的概念包括机器学习与深度学习。同时,人工智能还包括算力、芯片、器件等概念。
机器学习(Machine Learning,简称ML)是研究算法的学问。通过机器学习的算法,试图让机器基于过往的经验总结规律,理解数据并作出判断或预测。
深度学习(Deep Learning,简称DL)也是研究算法的学问,它特指机器学习中深度神经网络相关的算法与内容。它模仿人脑解释数据的机制,并对图像,声音和文本等数据进行学习。
机器学习的步骤
收集数据:收集有关问题的数据,包括特征和标签。
数据预处理:对数据进行清理、去噪、归一化、特征选择等操作,以便让机器学习算法更好地理解数据。
机器学习中的特征工程是指将原始数据转换为机器学习算法能够处理的特征向量的过程。特征工程是机器学习中非常重要的一步,因为它直接影响着模型的性能。一个好的特征工程能够提高模型的准确性和泛化能力。
特征工程包括以下几个方面:
数据清洗:处理数据中的缺失值、异常值和重复值。
特征选择:选择与目标变量相关的特征,排除与目标变量无关的特征。
特征提取:从原始数据中提取出有用的特征,例如从文本中提取出关键词、从图像中提取出颜色、纹理等特征。
特征变换:将特征进行变换,例如对连续型变量进行离散化、对类别型变量进行独热编码等。
特征组合:将多个特征组合起来形成新的特征,例如将身高和体重组合成BMI指数。
特征工程的目的是使得特征能够更好地反映数据的本质特征,从而提高模型的性能。在进行特征工程时,需要考虑数据的质量、特征的相关性以及算法的需求等因素,同时也需要不断地尝试和改进,以找到最优的特征组合。
划分数据集:将数据集划分为训练集、验证集和测试集,以便评估模型的性能并进行调优。
选择模型:根据问题类型和数据集的特点,选择合适的机器学习模型,如决策树、神经网络、支持向量机等。
训练模型:使用训练集对模型进行训练,通过反复迭代调整模型参数,使其尽可能地拟合数据集。
验证模型:使用验证集对模型进行评估,确定模型的性能和泛化能力,以便在必要时进行调整。
测试模型:使用测试集对模型进行最终评估,确定模型的准确性和可靠性。
部署模型:将训练好的模型部署到实际应用中,例如使用API接口提供服务。
模型监控:对部署的模型进行监控,及时发现异常情况并进行调整和修正。
模型评估和优化:根据实际应用情况,不断优化模型的性能和效果,以提高模型的预测准确率和稳定性。
模型评估是指对机器学习模型进行性能评估和优化,以便提高模型的准确性和泛化能力。模型评估的目的是选择最佳的模型,并调整模型参数,以便达到更好的预测效果。
常见的模型评估方法包括:交叉验证、ROC曲线、AUC值、混淆矩阵等。
监督学习
监督学习有2个主要的任务:

分类:如果预测的变量是离散的,我们称其为分类
回归:如果预测的变量是连续的,我们称其为回归
分类和回归的区别在于输出变量的类型:https://zhuanlan.zhihu.com/p/589535856
主流的监督学习算法
算法名称 | 类型 | 简介 |
---|---|---|
回归树 | 回归 | 回归树(决策树的一种)通过将数据集重复分割为不同的分支而实现分层学习,分割的标准是最大化每一次分离的信息增益。这种分支结构让回归树很自然地学习到非线性关系。 |
决策树 | 分类 | 决策树是一种简单但广泛使用的分类器,它通过训练数据构建决策树,对未知的数据进行分类。 |
逻辑回归 | 分类 | 逻辑回归是用于处理因变量为分类变量的回归问题,常见的是二分类或二项分布问题,也可以处理多分类问题,它实际上是属于一种分类方法。 |
朴素贝叶斯 | 分类 | 贝叶斯分类法是基于贝叶斯定定理的统计学分类方法。它通过预测一个给定的元组属于一个特定类的概率,来进行分类。朴素贝叶斯分类法假定一个属性值在给定类的影响独立于其他属性的 —— 类条件独立性。 |
神经网络 | 分类+回归 | 它从信息处理角度对人脑神经元网络进行抽象, 建立某种简单模型,按不同的连接方式组成不同的网络。 |
线性回归 | 回归 | 线性回归是处理回归任务最常用的算法之一。该算法的形式十分简单,它期望使用一个超平面拟合数据集(只有两个变量的时候就是一条直线)。 |
Adaboosting | 分类+回归 | Adaboost目的就是从训练数据中学习一系列的弱分类器或基本分类器,然后将这些弱分类器组合成一个强分类器。 |
K邻近 | 分类+回归 | 通过搜索K个最相似的实例(邻居)的整个训练集并总结那些K个实例的输出变量,对新数据点进行预测。 |
SVM | 分类 | 支持向量机把分类问题转化为寻找分类平面的问题,并通过最大化分类边界点距离分类平面的距离来实现分类。 |
knn算法
KNN(k-Nearest Neighbor)算法,即K最近邻算法。它的原理十分简单:存在一个训练样本集合,该集合中每行数据包含多个特征和分类标签,输入没有标签但有多个特征的新数据,将新数据的每个特征与样本中每条数据对应的特征进行比较,然后提取出样本中与新数据最相似的K条数据,统计该K条数据中各类标签出现的次数,那么出现次数最多的标签即为新数据的分类标签。
相要了解一个人,就去看看他的朋友。 —— 鲁迅


朴素贝叶斯


某个医院早上收了六个门诊病人,如下表。
症状 | 职业 | 疾病 |
---|---|---|
打喷嚏 | 护士 | 感冒 |
打喷嚏 | 农夫 | 过敏 |
头痛 | 建筑工人 | 脑震荡 |
感冒 | 建筑工人 | 感冒 |
打喷嚏 | 教师 | 感冒 |
头痛 | 教师 | 脑震荡 |
现在又来了第七个病人,是一个打喷嚏的建筑工人。请问他患上感冒的概率有多大?
根据贝叶斯定理:P(A|B) = P(B|A) P(A) / P(B)
可得 P(感冒|打喷嚏x建筑工人) = P(打喷嚏x建筑工人|感冒) x P(感冒) / P(打喷嚏x建筑工人)
假定”打喷嚏”和”建筑工人”这两个特征是独立的,因此,上面的等式就变成了
P(感冒|打喷嚏x建筑工人) = P(打喷嚏|感冒) x P(建筑工人|感冒) x P(感冒) / P(打喷嚏) x P(建筑工人)
这是可以计算的。
P(感冒|打喷嚏x建筑工人) = 0.66 x 0.33 x 0.5 / 0.5 x 0.33 = 0.66
P(不是感冒|打喷嚏x建筑工人) = P(打喷嚏|不是感冒) x P(建筑工人|不是感冒) x P(不是感冒) / P(打喷嚏) x P(建筑工人) = 0.33 x 0.33 x 0.5 / 0.5 x 0.33 = 0.33
https://www.ruanyifeng.com/blog/2013/12/naive_bayes_classifier.html
https://cloud.tencent.com/developer/article/1081592
决策树(Decision tree)
决策树算法采用树形结构,使用层层推理来实现最终的分类。决策树由下面几种元素构成:
根节点:包含样本的全集
内部节点:对应特征属性测试
叶节点:代表决策的结果



信息增益大表示该特征具有更强的分类能力。选择信息增益最大的特征来建立决策树的当前节点。

https://zhuanlan.zhihu.com/p/75991212
https://bainingchao.github.io/2018/09/19/一步步教你轻松学决策树算法/
https://www.ai8py.com/python-decision-tree.html
随机森林


随机森林是由很多决策树构成的,不同决策树之间没有关联。
当我们进行分类任务时,新的输入样本进入,就让森林中的每一棵决策树分别进行判断和分类,每个决策树会得到一个自己的分类结果,决策树的分类结果中哪一个分类最多,那么随机森林就会把这个结果当做最终的结果。

一个样本容量为N的样本,有放回的抽取N次,每次抽取1个,最终形成了N个样本。这选择好了的N个样本用来训练一个决策树,作为决策树根节点处的样本。
当每个样本有M个属性时,在决策树的每个节点需要分裂时,随机从这M个属性中选取出m个属性,满足条件m << M。然后从这m个属性中采用某种策略(比如说信息增益)来选择1个属性作为该节点的分裂属性。
决策树形成过程中每个节点都要按照步骤2来分裂(很容易理解,如果下一次该节点选出来的那一个属性是刚刚其父节点分裂时用过的属性,则该节点已经达到了叶子节点,无须继续分裂了)。一直到不能够再分裂为止。注意整个决策树形成过程中没有进行剪枝。
按照步骤1~3建立大量的决策树,这样就构成了随机森林了。
线性回归

https://zhuanlan.zhihu.com/p/72513104
https://zhuanlan.zhihu.com/p/109265392
支持向量机
https://zhuanlan.zhihu.com/p/71074401
神经网络
https://www.cnblogs.com/xueweihan/p/15183406.html
无监督学习
聚类(Clustering)
聚类是无监督学习中的一种常见方法,其目的是将一组数据分成不同的类别或簇。聚类算法可以根据数据的相似性或距离度量将数据分成不同的簇。常见的聚类算法包括K-Means、层次聚类、DBSCAN等。聚类算法在数据挖掘、图像分析、生物信息学等领域有广泛应用。
k-means算法
事先确定常数K,常数K意味着最终的聚类类别数;
首先随机选定初始点为质心,并通过计算每一个样本与质心之间的相似度(这里为欧式距离),将样本点归到最相似的类中,
接着,重新计算每个类的质心(即为类中心),重复这样的过程,直到质心不再改变,
最终就确定了每个样本所属的类别以及每个类的质心。
代码演示
网站演示 https://www.naftaliharris.com/blog/visualizing-k-means-clustering/
降维(Dimensionality Reduction)
降维是无监督学习中的一种方法,其目的是将高维数据转换为低维数据,以方便数据的可视化、处理和分析。降维算法可以通过保留数据中最重要的特征和信息,减少数据的复杂度和冗余。常见的降维算法包括主成分分析(PCA)、线性判别分析(LDA)、t-SNE等。降维算法在图像处理、文本分析、生物信息学等领域有广泛应用。pca算法https://leemeng.tw/essence-of-principal-component-analysis.htmlpca算法https://leemeng.tw/essence-of-principal-component-analysis.html

PCA算法
https://github.com/ljpzzz/machinelearning/blob/master/classic-machine-learning/pca.ipynb
关联规则(Association Rule):
关联规则是无监督学习中的一种方法,其目的是发现数据之间的关联性和规律。关联规则算法可以根据数据中的频繁项集和关联规则,发现不同数据项之间的关联性和依赖性,以帮助用户发现数据中的隐藏规律和趋势。常见的关联规则算法包括Apriori、FP-Growth等。关联规则算法在市场营销、电子商务、推荐系统等领域有广泛应用。
Apriori

深度学习

1. 神经网络的结构
神经网络是一种模拟人类神经系统的机器学习模型,其基本结构包括输入层、隐藏层和输出层。输入层接收原始数据,隐藏层通过对输入数据进行加权、激活等操作,提取出更高层次的特征信息,最终输出层根据这些特征信息对数据进行分类或预测。
2. 激活函数
激活函数是神经网络中的一个重要组成部分,其作用是将输入信号转换为输出信号。常用的激活函数包括sigmoid函数、ReLU函数、tanh函数等。这些不同的激活函数在不同的场景下都有其适用性和局限性。
3. 损失函数
损失函数是用来衡量模型预测结果与真实结果之间的差距,并将其最小化的函数。常见的损失函数包括均方误差、交叉熵等。选择不同的损失函数可以优化模型的表现,提高模型的预测能力。
4. 优化器
优化器是用来优化模型参数的算法,其作用是在训练过程中不断调整模型参数,使得损失函数最小化。常见的优化器包括随机梯度下降(SGD)、Adam、Adagrad等。
5. 卷积神经网络
卷积神经网络是一种特殊的神经网络,其主要特点是通过卷积操作有效提取图像等数据中的空间特征。卷积神经网络常用于图像识别、物体检测等领域。
6. 循环神经网络
循环神经网络是一种特殊的神经网络,其主要特点是在处理序列数据时具有记忆能力。循环神经网络通过反馈机制将当前时刻的输出作为下一时刻的输入,从而实现对序列数据的连续处理。循环神经网络常用于自然语言处理、语音识别等领域。
强化学习
- 基本概念
强化学习是一种机器学习方式,它通过智能体与环境的交互学习,使其能够在某个任务中获得最大的奖励或效用。在强化学习中,智能体根据当前状态和可选择的行动,决策选择哪个行动,然后观察环境的反馈信息,通过调整策略来实现最大化奖励。
- 策略评估
在强化学习中,我们需要评估当前策略的好坏。策略评估是通过计算状态值函数或者动作值函数来实现的。状态值函数表示在当前状态下,执行策略所能获得的期望回报;动作值函数表示在当前状态下,执行某个动作后所能获得的期望回报。这些函数可以通过蒙特卡罗方法、时序差分学习等算法来计算。
- 策略改进
策略改进是指在当前策略已知的情况下,如何选择更好的策略。策略改进的方法一般有两种:贪心策略和贪心+探索策略。贪心策略是指在当前状态下选择期望回报最大的动作;贪心+探索策略则是在一定概率下选择非贪心的动作,以便在探索未知领域的同时不影响现有策略的收益。
q-learning 算法

https://zhuanlan.zhihu.com/p/36669905
https://mofanpy.com/tutorials/machine-learning/reinforcement-learning/intro-q-learning
应用实例
图像识别
图像识别是机器学习最常见的应用之一,它可以帮助计算机识别和分析图像中的对象、形状、颜色、文字等信息。图像识别技术广泛应用于人脸识别、车牌识别、安防监控等领域。
例如,在医疗领域中,图像识别技术可以帮助医生快速诊断疾病,如肺部CT扫描图像中肿瘤的检测和分析,以及眼底图像中糖尿病视网膜病变的诊断等。
语音识别
语音识别技术可以将人类的语音转换为计算机可以理解的数据,它是实现人机交互的重要技术。语音识别技术广泛应用于智能家居、语音助手、客服机器人等领域。
例如,在智能家居领域中,语音识别技术可以帮助用户通过语音控制家庭设备,如打开灯、调节温度等。
自然语言处理
自然语言处理技术可以帮助计算机理解和处理人类自然语言,包括语义分析、命名实体识别、情感分析等技术。自然语言处理技术广泛应用于智能客服、智能翻译、智能推荐等领域。
例如,在智能客服领域中,自然语言处理技术可以帮助机器人理解用户的提问,并给出相应的答案。
推荐系统
推荐系统是一种根据用户历史行为和兴趣,为用户推荐相关的产品或服务的技术。推荐系统广泛应用于电商、社交网络等领域。
例如,在电商领域中,推荐系统可以根据用户的浏览历史和购买记录,为用户推荐相关的商品,提高用户的购物体验。
金融预测
机器学习技术可以帮助金融机构进行风险评估和市场预测。例如,利用机器学习技术进行股票预测,可以帮助投资者做出更明智的投资决策。
另外,在信用风险评估领域中,机器学习技术可以帮助银行评估贷款申请人的信用风险,提高贷款的准确性和效率。
未来发展
机器学习的趋势:
自动化:自动化是机器学习领域中的一个重要趋势。随着自动化技术的不断发展,机器学习将会更加普及,从而进一步增加其应用领域。
大数据:随着大数据时代的到来,机器学习将会受益于大数据的支持。大数据将会为机器学习提供更加精确的数据集和更高的性能。
机器学习的挑战:
数据隐私:数据隐私是机器学习领域中的一个大问题,如何保护数据隐私成为了机器学习领域中需要解决的一个难题。
数据稀缺性:对于一些特定领域,如医疗保健和金融业等,数据稀缺性成为了一个重要的问题。
透明度:机器学习模型的透明度是一个重要问题,如何保证模型的可解释性成为了机器学习领域中需要解决的一个问题。