使用 Python 进行 AI – 机器学习
用 Python 进行 AI – 机器学习入门
Section titled “用 Python 进行 AI – 机器学习入门”机器学习 (Machine Learning, ML) 是人工智能 (Artificial Intelligence, AI) 的一个子领域,它致力于开发能够从数据中学习并提高在特定任务上表现的系统,而无需进行显式编程。与依赖预定义规则不同,ML 算法通过识别数据中的模式和关系来进行预测或决策。
机器学习的核心思想
Section titled “机器学习的核心思想”机器学习的基本原理是让计算机能够从经验中学习。这种“经验”以数据的形式出现。通过处理这些数据(可以是示例、直接指令或与环境的交互),机器学习模型调整其内部参数,以更好地执行目标任务。这可能包括将电子邮件分类为垃圾邮件、预测房价或识别图像中的物体。
机器学习的类型
Section titled “机器学习的类型”机器学习算法根据学习系统可用的学习信号或反馈的性质大致分为以下几类:
1. 监督学习
Section titled “1. 监督学习”在监督学习中,算法从一个标注数据集(labeled dataset)中学习,其中每个数据点都包含输入特征(input features)和一个对应的正确输出(标签, label)。目标是学习一个映射函数,该函数可以预测新的、未见过输入的输出。
如果 X 代表输入特征,Y 代表输出标签,算法学习 Y = f(X)。目标是精确地逼近 f,以便对新的 X 值进行可靠的预测。
监督学习问题主要分为:
- 分类 (Classification):输出变量是一个类别(例如,“垃圾邮件”/“非垃圾邮件”、“狗”/“猫”、疾病诊断)。
- 回归 (Regression):输出变量是一个连续实数值(例如,价格、温度、身高)。
示例:线性回归 (Linear Regression)、逻辑回归 (Logistic Regression)、决策树 (Decision Trees)、支持向量机 (Support Vector Machines, SVM)、神经网络 (Neural Networks)。
2. 无监督学习
Section titled “2. 无监督学习”无监督学习算法处理未标注的数据。系统尝试直接从输入数据中学习模式、结构或关系,而没有关于“正确”输出的明确指导。
目标通常是发现数据中的隐藏结构。常见的无监督任务包括:
- 聚类 (Clustering):将相似的数据点分组在一起(例如,基于购买行为的客户细分)。
- 关联规则挖掘 (Association Rule Mining):发现描述数据集中项目之间关系的规则(例如,“购买 X 的客户也倾向于购买 Y”)。
- 降维 (Dimensionality Reduction):在保留重要信息的同时减少变量数量(例如,主成分分析 - PCA)。
示例:K-Means 聚类 (K-Means Clustering)、层次聚类 (Hierarchical Clustering)、Apriori 算法、PCA。
3. 强化学习
Section titled “3. 强化学习”强化学习 (Reinforcement Learning, RL) 涉及一个智能体 (agent) 在环境中学习一系列决策以最大化累计奖励。智能体通过试错 (trial and error) 进行学习,并对其行为接收反馈(奖励或惩罚)。
强化学习适用于智能体需要学习随时间推移的最佳行为的问题,例如游戏(AlphaGo)、机器人和自主导航。
示例:Q-Learning、SARSA、深度Q网络 (Deep Q-Networks, DQN)。
其他类别,如半监督学习 (semi-supervised learning)(使用标注数据和未标注数据的混合)和自监督学习 (self-supervised learning)(从数据本身生成标签)也存在,它们连接了这些主要类型。
常见的机器学习算法:简要概述
Section titled “常见的机器学习算法:简要概述”以下是一些广泛使用的机器学习算法:
一种用于回归任务的监督学习算法。它通过将线性方程拟合到观测数据来模拟因变量(目标变量)与一个或多个自变量(特征变量)之间的关系。简单线性回归涉及一个自变量,而多元线性回归涉及多个自变量。
用例:根据大小、位置等预测房价。
一种用于二元分类任务(尽管可扩展到多类别)的监督学习算法。尽管名称中包含“回归”,但它是一个分类算法,使用逻辑(Sigmoid)函数预测实例属于特定类别的概率。
用例:电子邮件垃圾邮件检测(垃圾邮件/非垃圾邮件)、医学诊断(疾病/无疾病)。
一种用于分类和回归的监督学习算法。它创建一个树状的模型来表示决策。每个内部节点表示对一个属性的测试,每个分支表示测试的结果,每个叶节点表示一个类别标签(在分类中)或一个连续值(在回归中)。
[图片描述:一个简单决策树的图示。它从一个根节点开始(例如,“年龄 < 30?”)。分支导向其他决策节点(例如,“吃披萨?”)或代表最终结果的叶节点(例如,“健康”、“不健康”)。]
用例:客户流失预测、识别贷款批准因素。
支持向量机 (SVM)
Section titled “支持向量机 (SVM)”一种有效的监督学习算法,用于分类和回归,尤其擅长处理高维空间。SVM 在特征空间中找到一个最优超平面 (hyperplane),该超平面能最好地将不同类别的数据点分开。“核技巧 (kernel trick)” 使得 SVM 能够进行非线性分类。
[图片描述:一个二维散点图,包含两类数据点(例如,圆圈和正方形)。SVM 分类器找到一条线(超平面),以最大间隔将这两类分开。支持向量 (support vectors) 是最靠近超平面1的数据点。]
用例:图像分类、文本分类、生物信息学。
一种基于贝叶斯定理 (Bayes’ Theorem) 的监督分类技术,它带有一个“朴素”假设:给定类别,特征之间条件独立 (conditional independence)。尽管存在这个强假设,但它通常表现良好,尤其适用于文本分类。
贝叶斯定理:P(A|B) = (P(B|A) * P(A)) / P(B)
用例:垃圾邮件过滤、文档分类、情感分析 (sentiment analysis)。
K近邻算法 (KNN)
Section titled “K近邻算法 (KNN)”一种简单、基于实例的 (instance-based) 监督学习算法,用于分类和回归。它根据新数据点在特征空间中与其“k”个最近邻居的多数类别(用于分类)或平均值(用于回归)进行分类。使用欧几里得 (Euclidean) 或曼哈顿 (Manhattan) 等距离度量。
注意事项:对于大型数据集计算成本可能很高,对特征缩放 (feature scaling) 和“k”的选择敏感。
用例:推荐系统、异常检测。
K-Means 聚类
Section titled “K-Means 聚类”一种用于聚类的无监督学习算法。它旨在将“n”个观测值划分到“k”个簇中,其中每个观测值属于距离其最近的均值(质心, centroid)所在的簇。
流程:
- 随机初始化“k”个质心或使用启发式方法(例如,k-means++)。
- 将每个数据点分配给最近的质心。
- 重新计算质心,使其成为分配到该簇的所有点的平均值。
- 重复步骤 2 和 3,直到收敛(质心不再发生显著变化)。
用例:客户细分、文档分组、图像压缩。
一种集成学习 (ensemble learning) 方法(监督学习),它在训练期间构建多个决策树,并输出单个树的众数类别(分类)或平均预测值(回归)。与单个决策树相比,它通常能提高准确性并控制过拟合 (overfitting)。
核心思想:Bootstrap 聚合 (Bagging) 和分裂节点时的特征随机性 (feature randomness)。
用例:广泛的分类和回归任务、特征重要性排序 (feature importance ranking)。