机器学习第一课: 打通任督二脉

为什么进行机器学习

  1. 解决传统编程难以解决的复杂问题
  2. 自动化和适应性
  3. 从数据中发现知识和洞见
  4. 提高效率和降低成本
  5. 机器学习是人工智能的重要推动因素
  6. ....

进行机器学习的原因有很多, 就不一一阐述了。

问题: 如何精准的学习并快速掌握 Macheine Learn。

通过本文你可以掌握:

  • 机器学习领域分类讲解
  • 机器学习术语概括
  • AI大模型与机器学习的区别
  • 基于Colab房价分析实战

家族谱

机器学习是一个庞大的领域,可以从不同的角度进行分类。以下是最常见的分类方式,可以帮助我们理解机器学习的"家族谱"

按照学习方式分类

  • 监督学习

    • 在这种学习方式中,我们提供给算法带有"标签"的数据。标签就是我们想要预测的结果。算法通过学习输入数据和对应标签之间的关系,来预测新的数据的标签。
    • 示例:
      • 预测房价(标签是房价)。
      • 识别图片中的物体(标签是物体的类别)。
      • 垃圾邮件过滤(标签是"垃圾邮件"或"非垃圾邮件")。
    • 主要算法:
      • 回归算法 (Regression): 预测连续值,例如线性回归、多项式回归。
      • 分类算法 (Classification): 预测类别,例如逻辑回归、支持向量机、决策树、随机森林、K近邻。
  • 非监督学习

    • 在这种学习方式中,我们提供给算法没有"标签"的数据。算法需要自己去发现数据中的模式、结构或关系。
    • 示例:
      • 顾客分群 (Clustering): 将顾客分成不同的群体,以便进行个性化营销。
      • 降维 (Dimensionality Reduction): 将高维数据降低到低维,以便于可视化或减少计算量。
      • 关联规则学习 (Association Rule Learning): 发现事物之间的关联,例如"购买了尿布的顾客也经常购买啤酒"。
    • 主要算法:
      • 聚类算法 (Clustering): 例如 K均值聚类、层次聚类。
      • 降维算法 (Dimensionality Reduction): 例如主成分分析 (PCA)。
      • 关联规则算法 (Association Rule Learning): 例如 Apriori 算法。
  • 半监督学习

    • 这是介于监督学习和非监督学习之间的一种学习方式。算法同时使用有标签的数据和无标签的数据进行学习。
    • 场景: 当有标签的数据很少,而无标签的数据很多时,半监督学习非常有用。
    • 示例:
      • 网页分类:少量网页有人工标记的类别,而大量网页没有标记。
    • 方法: 半监督学习的方法很多,例如自训练、协同训练等。
  • 强化学习

    • 算法(称为"智能体")在一个环境中采取行动,并根据行动的结果获得奖励或惩罚。算法通过学习如何最大化奖励来优化其行为。
    • 示例:
      • 游戏 AI:训练 AI 玩游戏。
      • 机器人控制:控制机器人完成特定任务。
      • 推荐系统:为用户推荐商品。
    • 主要算法:
      • Q-learning
      • SARSA
      • 策略梯度方法 (Policy Gradient Methods)

强化学习是从环境中给它的奖惩中学习, 监督学习是从数据中学习 。

强化学习和普通机器学习的差异在于: 普通机器学习是在开放的环境中学习,如自动驾驶,每一次向前驾驶都带给机器新的环境,新环境(新数据)永无止息;
而强化学习的环境是封闭的,如智能体玩游戏,击中一个敌人,环境中就减少一个敌人 。

按照是否增量学习分类

  • 批量学习
    • 算法一次性使用所有训练数据进行学习。学习完成后,模型是固定的,不能再学习新的数据。
    • 缺点: 如果有新的数据需要学习,必须重新训练整个模型。
    • 例子: 大多数传统的机器学习算法都是批量学习。
  • 在线学习
    • 算法可以逐步地从数据流中学习。每当有新的数据到来时,算法可以更新模型,而不需要重新训练整个模型。
    • 优点: 可以适应动态变化的数据,适合处理大规模数据。
    • 例子: 股票价格预测、在线广告推荐。

按照学习方式分类

  • 基于实例的学习
    • 算法通过记住训练数据,并在预测新数据时,找到与新数据最相似的训练数据,然后根据训练数据的标签进行预测。
    • 例子: K近邻算法 (K-Nearest Neighbors)。
  • 基于模型的学习
    • 算法通过训练数据建立一个模型,然后使用这个模型进行预测。
    • 例子: 线性回归、逻辑回归、神经网络。

什么是线性回归

  • 线性回归是一种用于预测连续数值型输出的算法。它试图找到输入变量(特征)和输出变量之间的线性关系。
  • 原理:
    • 假设我们有一个输入变量 x 和一个输出变量 y。线性回归模型会找到一条最佳拟合直线来描述 x 和 y 之间的关系。这条直线的方程是:
    • y = mx + b
      • y 是预测的输出值
      • x 是输入变量
      • m 是直线的斜率
      • b 是直线的截距
    • 对于有多个输入变量的情况,线性回归模型会变成:
      • y = b0 + b1*x1 + b2*x2 + ... + bn*xn
        • y 是预测的输出值
        • x1, x2, ..., xn 是输入变量(特征)
        • b0 是截距
        • b1, b2, ..., bn 是对应于每个特征的系数
    • 模型的目标是找到最佳的系数(m 和 b,或者 b0, b1, b2, ..., bn),使得预测值 y 与实际值之间的误差最小。
  • 应用:
    • 预测房价
    • 预测销售额
    • 预测股票价格
    • 分析趋势

什么是逻辑回归

  • 逻辑回归是一种用于预测分类输出的算法。虽然名字里有"回归",但它实际上是一种分类方法。
  • 原理:
    • 逻辑回归模型也使用线性方程,但它不是直接预测输出值,而是预测输出属于某个类别的概率。
    • 为了将线性方程的输出转换为概率(概率的范围是 0 到 1),逻辑回归使用一个称为 sigmoid 函数的激活函数:sigmoid(z) = 1 / (1 + exp(-z))
      • 其中 z 是线性方程的输出。
    • 模型输出的是一个概率值,表示输入属于某个类别的可能性。通常会设定一个阈值(例如 0.5),如果概率大于阈值,则预测为该类别,否则预测为另一个类别。
    • 对于多类别分类,逻辑回归可以使用一些扩展方法,例如 One-vs-Rest (OvR) 或 One-vs-One (OvO)。
  • 应用:
    • 垃圾邮件过滤(判断邮件是否为垃圾邮件)
    • 疾病诊断(判断患者是否患有某种疾病)
    • 客户流失预测(预测客户是否会流失)
    • 广告点击率预测

神经网络 (Neural Network)又是什么

  • 神经网络是一种模拟人脑神经元连接方式的机器学习模型。它由大量的人工神经元(也称为节点)组成,这些神经元分层排列,并通过连接权重相互连接。
  • 原理:
    • 神经元: 每个神经元接收来自其他神经元的输入,对这些输入进行加权求和,然后应用一个激活函数(例如 sigmoid, ReLU)来产生输出。
    • 层: 神经元被组织成层:
      • 输入层:接收原始输入数据。
      • 隐藏层:位于输入层和输出层之间,可以有一层或多层。
      • 输出层:产生最终的预测结果。
    • 连接权重: 神经元之间的连接具有权重,这些权重是模型学习的参数。通过调整这些权重,神经网络可以学习复杂的输入和输出之间的关系。
    • 反向传播: 神经网络使用一种称为反向传播的算法来学习。该算法计算预测结果与实际结果之间的误差,并将误差反向传播回网络,以更新连接权重。
  • 类型
    • 前馈神经网络 (Feedforward Neural Network, FEN): 数据只在一个方向上传播,从输入层到输出层。
    • 卷积神经网络 (Convolutional Neural Network, CNN): 特别适合处理图像数据。
    • 循环神经网络 (Recurrent Neural Network, RNN): 适合处理序列数据,例如文本和时间序列。
  • 应用:
    • 图像识别
    • 语音识别
    • NLP处理(自然语言处理)
    • 机器翻译
    • 预测和时间序列分析

机器学习术语

  1. 数据集 (Dataset)
    • 定义: 数据集是用于训练和评估机器学习模型的数据的集合。
    • 组成: 数据集通常由多个数据点(也称为样本或实例)组成。
    • 例子:
      • 一个包含房屋信息的表格,每一行代表一个房屋,包含面积、卧室数量、地理位置等特征,以及房价。
      • 一个包含图片的文件集合,每张图片都标有图片中物体的类别。
  2. 样本/实例 (Sample/Instance)
    • 定义: 样本或实例是数据集中的一个单独的数据点。
    • 对应: 在表格数据中,一行通常代表一个样本;在图像数据中,一张图片通常是一个样本。
  3. 特征 (Feature)
    • 定义: 特征是用于描述数据的输入变量。
    • 同义词: 特征有时也被称为属性、变量或预测因子。
    • 例子:
      • 在房屋信息中,面积、卧室数量、地理位置等都是特征。
      • 在图像中,像素的亮度值可以是特征。
  4. 标签 (Label)
    • 定义: 标签是我们要预测的输出变量。
    • 仅限: 标签只在监督学习中使用。
    • 同义词: 标签有时也被称为目标变量或因变量。
    • 例子:
      • 在房屋信息中,房价是标签。
      • 在图片分类中,图片的类别(例如,猫、狗)是标签。
  5. 训练集 (Training Set)
    • 定义: 训练集是用于训练机器学习模型的数据集。
    • 用途: 模型通过学习训练集中的数据来找到输入特征和输出标签之间的关系。
  • 测试集 (Test Set)
    • 定义: 测试集是用于评估机器学习模型性能的数据集。
    • 重要性: 测试集中的数据模型在训练过程中从未见过,这可以帮助我们评估模型在新数据上的泛化能力。
  • 模型 (Model)
    • 定义: 模型是机器学习算法学习到的输入和输出之间的关系。
    • 形式: 模型可以是一个数学方程、一个决策树、一个神经网络等。
    • 用途: 模型可以用来对新的输入数据进行预测。
  • 算法 (Algorithm)
    • 定义: 算法是用于训练模型的步骤或规则的集合。
    • 关系: 算法是训练模型的方法,而模型是算法学习的结果。
    • 例子: 线性回归算法、决策树算法、神经网络算法。
  • 参数 (Parameter)
    • 定义: 参数是模型内部的变量,模型通过学习训练数据来设置这些参数的值。
    • 区别: 参数是模型的一部分,而超参数是算法的一部分。
    • 例子:
      • 在线性回归模型中,直线的斜率和截距是参数。
      • 在神经网络模型中,神经元之间的连接权重是参数。
  • 超参数 (Hyperparameter)
    • 定义: 超参数是在训练模型之前设置的,用于控制算法行为的参数。
    • 作用: 超参数不能通过学习数据来获得,需要手动调整。
    • 例子:
      • 在决策树算法中,树的最大深度是一个超参数。
      • 在神经网络算法中,学习率、隐藏层的数量和大小都是超参数。
  • 拟合 (Fitting)
    • 定义: 拟合是指模型学习训练数据中的模式的过程。
    • 好坏: 一个"好的"拟合意味着模型能够准确地预测训练数据的结果,并且也能够很好地泛化到新的、未见过的数据。
  • 过拟合 (Overfitting)
    • 定义: 过拟合是指模型在训练数据上表现非常好,但在新的、未见过的数据上表现很差的现象。
    • 原因: 模型过于复杂,学习了训练数据中的噪声和细节。
  • 欠拟合 (Underfitting)
    • 定义: 欠拟合是指模型在训练数据和新数据上都表现不佳的现象。
    • 原因: 模型过于简单,无法捕捉到数据中的复杂模式。

AI大模型和机器学习之间的关系

概念

  • 机器学习 (Machine Learning):
    • 定义:机器学习是人工智能 (AI) 的一个子领域,它使计算机能够从数据中学习,而无需进行明确的编程。
    • 范围:机器学习涵盖了各种算法和技术,使计算机能够识别模式、做出预测或执行决策。
    • 例子:线性回归、逻辑回归、决策树、支持向量机、聚类算法等。
  • AI大模型 (Large AI Models):
    • 定义:AI大模型指的是具有大量参数(通常是数十亿甚至数万亿)的机器学习模型。这些模型通常使用深度学习技术进行训练,并且能够处理和生成复杂的模式。
    • 特点:
      • 参数众多:能够捕捉数据中非常细微的模式。
      • 数据驱动:需要大量的数据进行训练。
      • 泛化能力强:在多种任务上表现出色。
    • 例子:
      • 大型语言模型 (LLM),如GPT系列、BERT等。
      • 大型视觉模型,能够处理复杂的图像和视频。

联系

  • AI大模型是机器学习的一种形式:AI大模型本质上也是机器学习模型,它们利用机器学习的算法和技术从数据中学习。
  • 依赖于机器学习的进步:AI大模型的出现和发展,离不开机器学习领域在算法、模型架构、训练方法等方面的进步。

区别

  • 规模:AI大模型最大的特点是其巨大的规模,包括模型参数的数量和训练数据的大小,这与传统的机器学习模型有显著差异。
  • 能力:AI大模型展现出更强大的能力,例如,大型语言模型能够生成高质量的文本,进行复杂的对话,甚至编写代码,这些能力是传统机器学习模型难以实现的。
  • 泛化性:AI大模型通常具有更强的泛化能力,即它们可以在没有明确训练过的任务上表现良好,这使得它们能够应用于更广泛的场景。
  • 资源消耗:训练和部署AI大模型需要大量的计算资源和数据资源,这使得它们与传统的机器学习模型相比,成本更高。

Colab房价分析实战

Colab网站 是 Google 提供的一个免费的云服务,它允许你在浏览器中编写和执行 Python 代码。它的界面类似于 Jupyter Notebook,这是一种非常流行的用于数据分析、机器学习和科学计算的交互式编程环境。

示例代码1:

python 复制代码
a = "Hello World"
b = "!"
c = a + b
print(c)

示例代码2:

python 复制代码
import pandas as pd
# 读取在下房价数据
df_housing = pd.read_csv("https://raw.githubusercontent.com/huangjia2019/house/master/house.csv")
print(df_housing)
# 去掉该列字段, 保留其余作为特征集 x
x = df_housing.drop("median_house_value", axis=1)
# 单独赋给特征集 y
y = df_housing.median_house_value
# 以 80%/20%的比例进行数据集的拆分
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=0)
# 线性回归模型
from sklearn.linear_model import LinearRegression
model = LinearRegression()
# 根据训练集数据,训练机器,拟合函数
model.fit(X_train, y_train)

示例代码3:

python 复制代码
y_pred = model.predict(X_test)
print("房价的真值(测试集)", y_test)
print("房价的预测值(测试集)", y_pred)
# 预测评分
print("给预测评分:", model.score(X_test, y_test))

示例代码4:

dart 复制代码
import matplotlib.pyplot as plt
plt.scatter(X_test.median_income, y_test, color="brown")
plt.plot(X_test.median_income, y_pred, color="green", linewidth=1)
plt.xlabel("median_income")
plt.ylabel("median_house_value")
plt.show()

机器学习实战5步曲:

这里也推荐另一个在线机器学习平台 kaggle

如果对你有帮助, 请点赞鼓励下

相关推荐
Luck_ff081017 分钟前
【Python爬虫详解】第四篇:使用解析库提取网页数据——BeautifuSoup
开发语言·爬虫·python
学渣6765625 分钟前
什么时候使用Python 虚拟环境(venv)而不用conda
开发语言·python·conda
layneyao33 分钟前
深度强化学习(DRL)实战:从AlphaGo到自动驾驶
人工智能·机器学习·自动驾驶
悲喜自渡72142 分钟前
线性代数(一些别的应该关注的点)
python·线性代数·机器学习
Huanzhi_Lin1 小时前
python源码打包为可执行的exe文件
python
声声codeGrandMaster2 小时前
django之账号管理功能
数据库·后端·python·django
追逐☞2 小时前
机器学习(10)——神经网络
人工智能·神经网络·机器学习
winner88812 小时前
对抗学习:机器学习里的 “零和博弈”,如何实现 “双赢”?
人工智能·机器学习·gan·对抗学习
娃娃略2 小时前
【AI模型学习】双流网络——更强大的网络设计
网络·人工智能·pytorch·python·神经网络·学习
LCY1332 小时前
python 与Redis操作整理
开发语言·redis·python