Appearance
机器学习基础知识
1. 绪论
1.1 机器学习的关键特点包括:
- 数据驱动:机器学习模型主要依赖于数据来改进其性能和准确性。
- 模式识别:机器学习算法能够识别数据中的模式,并用这些模式来预测新数据的结果。
- 自适应学习:机器学习模型可以根据新的数据自动调整,以提高其预测或决策的准确性。
- 泛化能力:机器学习模型能够将从训练数据中学到的知识应用到新的、未见过的数据上。
1.2 机器学习可以分为几种类型:
- 监督学习:在这种类型中,模型从标记的训练数据中学习,并尝试预测输出标签。
- 无监督学习:模型在没有标记的训练数据中寻找隐藏的模式和结构。
- 半监督学习:结合了监督学习和无监督学习的特点,使用少量标记数据和大量未标记数据。
- 强化学习:模型通过与环境的交互来学习,目标是最大化某种累积奖励。
1.3 机器学习的流程
- 问题定义(Problem Definition):明确你想要解决的问题,并确定机器学习是否是合适的解决方案。同时,设定项目目标和成功标准。
- 数据收集(Data Collection):收集用于训练模型的数据。这可能包括在线数据抓取、数据库查询、公开数据集或通过实验和调查收集的数据。
- 数据预处理(Data Preprocessing):清洗数据,处理缺失值、异常值和噪声。进行特征工程,包括特征选择、特征提取和特征构造,以创建更好的输入变量。数据标准化或归一化,以确保模型不会因为数值范围不同而产生偏差。
- 选择模型(Model Selection):根据问题的性质(分类、回归、聚类等)选择合适的机器学习算法。
- 训练模型(Model Training):使用训练数据集来训练模型。这个过程涉及到学习算法从数据中识别模式。
- 模型评估(Model Evaluation):使用验证集或交叉验证来评估模型的性能。选择适当的评估指标,如准确率、召回率、F1分数、均方误差等。
- 超参数调优(Hyperparameter Tuning):调整模型的超参数以优化性能。这可以通过网格搜索、随机搜索或更高级的技术如贝叶斯优化来完成。
- 模型验证(Model Validation):使用独立的测试集来验证模型的泛化能力,确保模型在未见过的数据上也能表现良好。
- 模型部署(Model Deployment):将训练好的模型部署到生产环境中,以便对新数据进行预测。
- 监控与维护(Monitoring and Maintenance):持续监控模型的性能,确保其预测准确性随时间保持稳定。定期对模型进行维护和更新,以适应新的数据或变化的环境。
- 反馈循环(Feedback Loop):建立一个反馈机制,使用模型的预测结果和实际结果之间的差异来进一步训练和改进模型。
- 伦理和合规性考量(Ethical and Compliance Considerations):确保模型的决策过程符合伦理标准和法律法规,避免偏见和歧视。
2. 监督学习
2.1 广义线性模型(Generalized Linear Models, GLM):
广义线性模型是线性回归模型的扩展,允许因变量的分布属于指数分布族,包括二项分布、泊松分布等。GLM可以处理非正态分布的数据,并且可以用于分类和回归问题。
- 如果是连续的,就是多重线性回归
- 如果是二项分布,就是逻辑回归
- 如果是泊松(Poisson),就是泊松回归
- 如果是负二项分布,就是负二项回归

2.2 线性和二次判别分析(Linear and Quadratic Discriminant Analysis, LDA/QDA):
线性判别分析(LDA)和二次判别分析(QDA)是分类算法,它们寻找特征的线性组合,以最大化类间方差和最小化类内方差。QDA允许每个类别具有不同的协方差矩阵,而LDA假设所有类别共享相同的协方差矩阵。 
2.3 内核岭回归(Kernel Ridge Regression):
内核岭回归是岭回归的核方法版本,它通过将数据映射到更高维的空间来解决非线性问题。在高维空间中,数据可能变得更容易线性分割。 
2.4 支持向量机(Support Vector Machines, SVM):
SVM是一种强大的分类算法,它通过寻找最大化类间间隔的超平面来区分不同的类别。SVM也可以通过使用不同的核函数来处理非线性问题。 
2.5 随机梯度下降(Stochastic Gradient Descent, SGD):
SGD是一种优化算法,用于在机器学习中训练模型,特别是线性分类器和回归模型。它通过随机选择样本来更新模型参数,以减少计算成本并加快收敛速度。
2.6 K-最近邻(K-Nearest Neighbors, KNN):
KNN是一种基于实例的学习算法,它根据最近的K个邻居的类别来预测新样本的类别。KNN可以用于分类和回归问题。
2.7 高斯过程(Gaussian Processes):
高斯过程是一种基于概率的非参数化贝叶斯方法,用于回归和分类问题。它通过假设数据点之间的相关性遵循高斯分布来建模函数。
2.8 交叉分解(Cross-Decomposition):
交叉分解是一种数据分析技术,用于评估两个或多个变量之间的关系。它通常用于市场篮子分析和推荐系统,以发现变量之间的关联规则。
2.9 朴素贝叶斯(Naive Bayes):
朴素贝叶斯是一种基于贝叶斯定理的简单概率分类器,它假设特征之间相互独立。尽管这种假设在现实中往往不成立,但朴素贝叶斯在文本分类和垃圾邮件检测等任务中表现出色。 
2.10 决策树(Decision Trees):
决策树是一种树状模型,用于分类和回归问题。它通过学习简单的决策规则从数据特征中推断出目标变量。 
2.11 集成方法(Ensemble Methods):
集成方法是结合多个学习算法以获得比单一算法更好的预测性能的方法。常见的集成算法包括随机森林、梯度提升树和AdaBoost。 
2.12 多类和多标签算法(Multiclass and Multilabel Algorithms):
多类算法处理的目标变量可以取多个类别中的一个。多标签算法则允许一个样本同时具有多个标签。
2.13 特征选取(Feature Selection):
特征选择是机器学习中的一项重要任务,目的是从原始特征集中选择最相关的特征子集,以提高模型的性能和解释性。
3.半监督学习
3.1 自训练(Self-Training):
自训练是一种简单但有效的半监督学习方法。它首先使用少量的标记数据训练一个初始模型,然后利用这个模型对未标记数据进行预测,选择置信度高的预测结果作为新的标记数据加入训练集,迭代这个过程直到模型收敛 。
3.2 协同训练(Co-Training):
协同训练是一种基于多视图的半监督学习方法,通过训练两个或多个不同视角的分类器,分别对无标签数据进行预测,并将一个分类器高置信度的预测结果作为有标签数据供另一个分类器使用,迭代进行训练 。
3.3 等式回归(Isotonic Regression):
等式回归是一种非参数的回归方法,它旨在找到一个非递减的函数,该函数最小化加权平方误差之和,同时满足输出值的非递减性质。具体来说,它解决了这样一个优化问题:最小化
3.4 概率校准(Probability Calibration):
概率校准是监督学习中的一个重要概念,特别是在分类问题中。它涉及调整分类模型输出的概率预测,使其更接近真实的概率分布。校准的目的是使模型对于其预测的置信度与实际发生的概率相匹配。例如,如果一个模型预测某个样本属于正类的概率为0.7,那么在所有该模型预测为0.7的样本中,大约70%应该是真正的正样本。CalibratedClassifierCV 是 scikit-learn 提供的一个用于概率校准的工具,它使用等渗回归或乙状结构来校准预测概率 。
3.5 神经网络(有监督):
有监督的神经网络模型,特别是多层感知器(MLP),是一种强大的监督学习技术,可以用于分类和回归任务。MLP由多个层组成,包括输入层、隐藏层和输出层。每一层由多个神经元组成,神经元之间通过权重连接。MLP通过前向传播算法来计算输出,并使用反向传播算法来调整权重,以此来最小化损失函数。有监督的神经网络模型可以包含多种类型的层和激活函数,并且可以通过正则化技术来防止过拟合。在scikit-learn中,MLPClassifier 和 MLPRegressor 分别用于分类和回归任务 。 
4.无监督学习
4.1 高斯混合模型(Gaussian Mixture Model, GMM)
高斯混合模型是一种概率模型,它假设所有数据点都是从有限数量的高斯分布的混合中生成的。GMM可以看作是对K-means聚类算法的扩展,它包含了数据的协方差结构以及隐高斯模型中心的信息。GMM的核心定理是其概率密度函数(PDF),表达为多个高斯分布的加权和,每个高斯分布代表数据空间中的一个潜在类别或簇。这种模型能够捕捉非线性、非凸的数据分布,广泛应用于聚类分析、异常检测、密度估计、语音识别、图像分割等场景 。
4.2 流形学习(Manifold Learning)
流形学习是一种无监督学习方法,旨在发现数据在低维流形结构上的表示。它假设高维数据实际上是分布在低维流形上的,流形学习的目标是找到这个低维流形,并在这个低维空间中表示数据。流形学习的方法包括局部线性嵌入(LLE)、t-SNE、ISOMAP等,它们通常用于数据可视化和降维 。
4.3 聚类(Clustering)
聚类是无监督学习中的一项基本任务,旨在将数据集中的样本划分为若干个簇,使得同一个簇内的样本相似度高,不同簇之间的样本相似度低。常见的聚类算法包括K-means、层次聚类、DBSCAN等 。 
4.4 双聚类(Biclustering)
双聚类是一种特殊的聚类方法,它同时对数据矩阵的行和列进行聚类,目的是发现行和列的子集,这些子集在矩阵中表现出相似的行为或模式。双聚类在基因表达数据分析等领域有应用 。
4.5 分解成分中的信号(矩阵分解问题)
矩阵分解是将一个矩阵分解为两个或多个矩阵的乘积的过程。在无监督学习中,矩阵分解通常用于发现数据的潜在结构,例如在推荐系统中发现用户和物品的潜在特征。非负矩阵分解(NMF)是一种流行的矩阵分解方法,它要求分解得到的矩阵元素非负,这使得结果更容易解释 。
4.6 协方差估计(Covariance Estimation)
协方差估计是指估计随机变量之间协方差矩阵的过程。在无监督学习中,协方差估计可以帮助我们了解数据特征之间的关系和结构,对于多元数据的分析尤为重要 。
4.7 新奇和异常值检测(Novelty and Anomaly Detection)
新奇检测和异常值检测是无监督学习中的重要任务,旨在识别数据集中不符合预期模式或与大多数数据明显不同的数据点。这些方法在金融欺诈检测、网络安全等领域有广泛应用 。
4.8 密度估计(Density Estimation)
密度估计是根据一组训练样本来估计样本空间中的概率密度函数。在无监督学习中,密度估计可以帮助我们了解数据的分布情况,对于聚类、异常检测等任务有重要作用 。
4.9 神经网络(无监督)
无监督神经网络是指在没有外部标签信息的情况下训练的神经网络。这些网络试图从数据中学习有用的特征表示,可以用于数据降维、特征学习等任务。常见的无监督神经网络包括自编码器(Autoencoders)、生成对抗网络(GANs)等 。
5.强化学习
5.1 深度Q网络(Deep Q-Network,DQN)
DQN是将Q-Learning算法与深度学习结合的方法,通过深度神经网络来近似Q函数,解决了传统Q-Learning在处理高维、连续空间问题时的局限性。DQN使用经验回放和固定Q目标来提高学习的稳定性。
5.2 策略梯度(Policy Gradient,PG)
策略梯度方法通过直接对策略函数进行梯度上升来优化策略,使得期望奖励最大化。这种方法可以直接处理连续动作空间,并且能够学习到复杂策略。
5.3 演员-评论家方法(Actor-Critic Methods,AC)
演员-评论家方法是一种结合了策略梯度和值函数估计的方法。演员网络负责学习策略,而评论家网络负责学习状态值函数或动作值函数,为演员提供指导。
5.4 Q学习(Q-Learning,QL)
Q学习是一种模型无关的强化学习算法,通过迭代更新每个状态-动作对的价值来学习最优策略。Q学习不需要环境模型,适用于探索未知环境。
5.5 SARSA(State-Action-Reward-State-Action,SARSA)
SARSA是Q学习的变体,它使用“随时间差分”学习,同时更新动作价值函数和策略。SARSA在每一步都使用实际采取的动作来更新Q值,与Q学习不同,后者使用最佳动作。
5.6 蒙特卡洛树搜索(Monte Carlo Tree Search,MCTS)
MCTS是一种用于某些类型游戏(如围棋)的搜索算法,它结合了蒙特卡洛方法和树搜索。MCTS通过模拟许多可能的未来路径来评估动作,并选择具有最高预期收益的动作。
5.7 基于模型的方法(Model-Based Methods,MB)
基于模型的强化学习方法通过学习环境的模型来进行决策,这些模型包括状态转移概率和奖励函数。这种方法可以利用模型来规划和优化策略。
5.8 值迭代(Value Iteration,VI)
值迭代是一种基于动态规划的算法,通过迭代更新状态价值函数来找到最优策略。它适用于小规模或者完全可观测的环境。
5.9 时序差分学习(Temporal Difference Learning,TD)
时序差分学习是一种结合了蒙特卡洛方法和动态规划的算法,它使用当前的值估计来更新未来的值预测,适用于在线学习和控制问题。
5.10 异步优势演员-评论家(Asynchronous Advantage Actor-Critic,A3C)
A3C是一种分布式的强化学习算法,允许多个智能体并行地学习和更新共享的网络参数,从而提高数据效率和计算速度。
5.11 近端策略优化(Proximal Policy Optimization,PPO)
PPO是一种基于策略的算法,它通过优化策略的期望值来提高策略性能,同时限制策略更新的步长,以保持学习的稳定性。
5.12 软演员-评论家(Soft Actor-Critic,SAC)
SAC是一种结合了最大熵强化学习和演员-评论家框架的方法,它不仅最大化累积奖励,还最大化与策略相关的熵,以鼓励探索。