机器学习基础与实战问答

机器学习实战问答与技巧

1、你会如何定义机器学习?

以下是调整为 Markdown 格式的文本内容:


机器学习是让计算机编程从而能从数据中学习的科学(和艺术)。还有一个更通用的定义:机器学习是赋予计算机无需明确编程就能学习能力的研究领域。


2、两种最常见的监督学习任务是什么?

监督学习任务

两种最常见的监督学习任务是 分类 回归

分类

分类 的任务是将输入数据划分到预定义的类别中。
例子 :垃圾邮件过滤器,根据许多示例邮件及其类别(垃圾邮件或正常邮件)进行训练,以对新邮件进行分类。

回归

回归 的任务是预测一个连续的数值输出。
例子 :根据一组特征(如里程、车龄、品牌等)预测汽车价格。

3、你会使用哪种类型的算法将客户划分为多个组?

可以使用聚类算法,如 K-Means、DBSCAN 等,通过基于客户的购买行为和网站活动等对客户进行聚类。

4、你会将垃圾邮件检测问题归类为有监督学习问题还是无监督学习问题?

应将垃圾邮件检测问题归类为有监督学习问题。垃圾邮件过滤器通过大量带有类别标签(垃圾邮件或正常邮件)的示例邮件进行训练,从而学习如何对新邮件进行分类,这符合有监督学习的特征。

5、什么是核外学习?

在线学习算法与核外学习

在线学习算法可用于在无法装入一台机器主内存的巨大数据集上训练模型,这被称为 核外学习

算法会:

  1. 加载部分数据;
  2. 对该数据进行一次训练步骤;
  3. 重复此过程,直到处理完所有数据。

6、哪种类型的算法依靠相似度度量来进行预测?

依靠相似度度量进行预测的算法与基于高斯径向基函数的支持向量机等使用相似度特征的机器学习算法有关。

7、模型参数和模型超参数有什么区别?

  • 模型参数 是模型学习得到的参数;
  • 超参数 是学习算法的参数,不是模型的参数,不受学习算法本身影响,必须在训练前设置且在训练期间保持不变,例如正则化超参数、批量大小等。

8、如果你的模型在训练数据上表现出色,但对新实例的泛化能力很差,这是怎么回事?请列举三种可能的解决方案。

这意味着模型对训练数据 过拟合 。三种可能的解决方案是:

  1. 简化或正则化模型
  2. 获取更多训练数据
  3. 清理训练数据

9、什么是测试集,为什么要使用它?

测试集的作用与重要性

测试集是从数据集中随机选取一部分实例组成的集合,通常占数据集的 20% (如果数据集非常大,占比会更小)。

使用测试集是为了避免 数据窥探偏差 。因为人脑是强大的模式检测系统,容易过度拟合。如果查看了测试集,可能会发现一些看似有趣的模式,从而选择特定的机器学习模型。

这样用测试集估计泛化误差时,估计值会过于乐观,导致推出的系统表现不如预期。

10、验证集的目的是什么?

验证集的作用与留出验证过程

验证集用于在模型选择过程中评估不同模型的性能,通过在验证集上的表现来挑选出最佳模型。

留出验证过程步骤:

  1. 划分数据集 :从完整训练集中减去验证集,得到训练子集。
  2. 训练模型 :在训练子集上训练模型。
  3. 选择最佳模型 :根据模型在验证集上的表现,选择表现最佳的模型。
  4. 重新训练模型 :在完整训练集(包含验证集)上训练该最佳模型,得到最终模型。
  5. 评估泛化误差 :在测试集上评估最终模型,以估计其泛化误差。

11、什么是训练开发集(train-dev set),何时需要它,以及如何使用它?

训练开发集的作用与使用方法

训练开发集是从网络训练图片中划分出的一个集合,由吴恩达命名。当真实数据稀缺时需要它。

使用方法

  1. 模型训练 :模型在训练集上完成训练。
  2. 初步评估
    - 在训练开发集上进行评估。
    - 若表现不佳
    • 说明模型过拟合了训练集。
    • 应尝试以下方法:
    • 简化或正则化模型。
    • 获取更多训练数据。
    • 清理训练数据。
    • 若表现良好
    • 在开发集上进行评估。
    • 若表现不佳
    • 问题可能源于数据不匹配。
    • 可对网络图像进行预处理,使其更像移动应用拍摄的图片。
    • 然后重新训练模型。
  3. 最终评估
    - 当模型在训练开发集和开发集上都表现良好时。
    - 最后在测试集上评估,以了解其在实际生产中的可能表现。

12、如果使用测试集调整超参数,会出现什么问题?

如果使用测试集调整超参数,对泛化误差的估计会过于乐观。

13、尝试用RandomizedSearchCV替换GridSearchCV,请给出相应的Python代码示例。

可以使用以下代码用 RandomizedSearchCV 替换 GridSearchCV

  1. 首先要引入所需的库,代码如下:

python from sklearn.model_selection import RandomizedSearchCV from scipy.stats import randint

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值