机器学习-面经

news2024/11/15 8:45:18

         经历了2023年的秋招,现在也已经入职半年了,空闲时间将面试中可能遇到的机器学习问题整理了一下,可能答案也会有错误的,希望大家能指出!另外,不论是实习,还是校招,都祝福大家能够拿到满意的Offer!

机器学习面经系列的其他部分如下所示:

机器学习-面经(part2)-交叉验证、超参数优化、评价指标等内容

机器学习-面经(part3)-正则化、特征工程面试问题与解答合集
机器学习-面经(part4)-决策树共5000字的面试问题与解答

1、机器学习模型

1.1 有监督学习模型

1.2 无监督学习模型

 1.3 概率模型

1.4、什么是监督学习?什么是非监督学习?

         所有的回归算法和分类算法都属于监督学习。并且明确的给给出初始值,在训练集中有特征和标签,并且通过训练获得一个模型,在面对只有特征而没有标签的数据时,能进行预测。

        监督学习:通过已有的一部分输入数据与输出数据之间的对应关系,生成一个函数,将输入映射到合适的输出,例如 分类。

        非监督学习:直接对输入数据集进行建模,例如强化学习、K-means 聚类、自编码、受限波尔兹曼机

        半监督学习:综合利用有类标的数据和没有类标的数据,来生成合适的分类函数。

          目前最广泛被使用的分类器有人工神经网络、支持向量机、最近邻居法、高斯混合模型、朴素贝叶斯方法、决策树和径向基函数分类。

         无监督学习里典型的例子就是聚类了。聚类的目的在于把相似的东西聚在一起,一个聚类算法通常只需要知道如何计算相似度就可以开始工作了。

1.5、回归、分类、聚类的区别与联系

1.6、生成模式 vs 判别模式

        生成模型: 由数据学得联合概率分布函数 P(X,Y),求出条件概率分布P(Y|X)的预测模型。 朴素贝叶斯、隐马尔可夫模型、高斯混合模型、文档主题生成模型(LDA)、限制玻尔兹曼机。         判别式模型: 由数据直接学习决策函数 Y = f(X),或由条件分布概率 P(Y|X)作为预测模型。 K近邻、SVM、决策树、感知机、线性判别分析(LDA)、线性回归、传统的神经网络、逻辑斯蒂回归、boosting、条件随机场。

2、线性模型

2.1 线性回归

        原理: 用线性函数拟合数据,用 MSE 计算损失,然后用梯度下降法(GD)找到一组使 MSE 最小的权重。

        线性回归的推导如下所示:

2.1.1 什么是回归?哪些模型可用于解决回归问题?

  •         指分析因变量和自变量之间关系.
  •         线性回归: 对异常值非常敏感
  •         多项式回归: 如果指数选择不当,容易过拟合。
  •         岭回归
  •         Lasso回归
  •         弹性网络回归

2.1.2 线性回归的损失函数为什么是均方差?

2.1.3 什么是线性回归?什么时候使用它?

        利用最小二乘函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析.

  • 自变量与因变量呈直线关系;
  • 因变量符合正态分布;
  • 因变量数值之间独立;
  • 方差是否齐性。

2.1.4 什么是梯度下降?SGD的推导?

        BGD: 遍历全部数据集计算一次loss函数,然后算函数对各个参数的梯度,更新梯度。 

BGD、SGD、MBGD之间的区别

2.1.5 什么是最小二乘法(最小平方法)?

        它通过最小化误差的平方和寻找数据的最佳函数匹配。

2.1.6 常见的损失函数有哪些?

  • 0-1损失
  • 均方差损失(MSE)
  • 平均绝对误差(MAE)
  • 分位数损失(Quantile Loss)
  • 分位数回归可以通过给定不同的分位点,拟合目标值的不同分位数; 实现了分别用不同的系数控制高估和低估的损失,进而实现分位数回归
  • 交叉熵损失
  • 合页损失 一种二分类损失函数,SVM的损失函数本质: Hinge Loss + L2 正则化 合页损失的公式如下:

2.1.7 有哪些评估回归模型的指标?

        衡量线性回归法最好的指标: R-Squared

 2.1.8 什么是正规方程?‍

        正规方程组是根据最小二乘法原理得到的关于参数估计值的线性方程组。正规方程是通过求解来找出使得代价函数最小的参数解出:

2.1.9 梯度下降法找到的一定是下降最快的方向吗?

        不一定,它只是目标函数在当前的点的切平面上下降最快的方向。 在实际执行期中,牛顿方向(考虑海森矩阵)才一般被认为是下降最快的方向,可以达到超线性的收敛速度。梯度下降类的算法的收敛速度一般是线性甚至次线性的(在某些带复杂约束的问题)。

2.1.10 MBGD需要注意什么? 如何选择m?

        一般m取2的幂次方能充分利用矩阵运算操作。 一般会在每次遍历训练数据之前,先对所有的数据进行随机排序,然后在每次迭代时按照顺序挑选m个训练集数据直至遍历完所有的数据。

2.2 LR

也称为"对数几率回归"。

知识点提炼

  1.     1.分类,经典的二分类算法!
  2.     2.LR的过程:面对一个回归或者分类问题,建立代价函数,然后通过优化方法迭代求解出最优的模型参数,然后测试验证这个求解的模型的好坏。
  3.     3.Logistic 回归虽然名字里带“回归”,但是它实际上是一种分类方法,主要用于两分类问题(即输出只有两种,分别代表两个类别)
  4.     4.回归模型中,y 是一个定性变量,比如 y = 0 或 1,logistic 方法主要应用于研究某些事件发生的概率。
  5.     5.LR的本质:极大似然估计
  6.     6.LR的激活函数:Sigmoid
  7.     7.LR的代价函数:交叉熵

优点

  •     1.速度快,适合二分类问题
  •     2.简单易于理解,直接看到各个特征的权重
  •     3.能容易地更新模型吸收新的数据

缺点

  •    对数据和场景的适应能力有局限性,不如决策树算法适应性那么强。LR中最核心的概念是 Sigmoid 函数,Sigmoid函数可以看成LR的激活函数。
  • Regression 常规步骤:
  •     寻找h函数(即预测函数)
  •     构造J函数(损失函数)
  •     想办法(迭代)使得J函数最小并求得回归参数(θ)

LR伪代码

  •     初始化线性函数参数为1
  •     构造sigmoid函数
  •     重复循环I次
  •             计算数据集梯度
  •             更新线性函数参数
  •     确定最终的sigmoid函数
  •     输入训练(测试)数据集
  •     运用最终sigmoid函数求解分类

LR的推导

2.2.1 为什么 LR 要使用 sigmoid 函数?

        1.广义模型推导所得 2.满足统计的最大熵模型 3.性质优秀,方便使用(Sigmoid函数是平滑的,而且任意阶可导,一阶二阶导数可以直接由函数值得到不用进行求导,这在实现中很实用)

2.2.2 为什么常常要做特征组合(特征交叉)?

  •         LR模型属于线性模型,线性模型不能很好处理非线性特征,特征组合可以引入非线性特征,提升模型的表达能力。
  •         另外,基本特征可以认为是全局建模,组合特征更加精细,是个性化建模,但对全局建模会对部分样本有偏,
  •         对每一个样本建模又会导致数据爆炸,过拟合,所以基本特征+特征组合兼顾了全局和个性化。

2.2.3 为什么LR比线性回归要好?

  •         LR和线性回归首先都是广义的线性回归;其次经典线性模型的优化目标函数是最小二乘,而LR则是似然函数;另外线性回归在整个实数域范围内进行预测,敏感度一致,而分类范围,需要在[0,1]。LR就是一种减小预测范围,将预测值限定为[0,1]间的一种回归模型,因而对于这类问题来说,LR的鲁棒性比线性回归的要好

2.2.4 LR参数求解的优化方法?(机器学习中常用的最优化方法)

        梯度下降法,随机梯度下降法,牛顿法,拟牛顿法(LBFGS,BFGS,OWLQN)

        目的都是求解某个函数的极小值。

2.2.5 工程上,怎么实现LR的并行化?有哪些并行化的工具?

  •         LR的并行化最主要的就是对目标函数梯度计算的并行化。
  •         无损的并行化:算法天然可以并行,并行只是提高了计算的速度和解决问题的规模,但和正常执行的结果是一样的。
  •         有损的并行化:算法本身不是天然并行的,需要对算法做一些近似来实现并行化,这样并行化之后的双方和正常执行的结果并不一致,但是相似的。
  •         基于Batch的算法都是可以进行无损的并行化的。而基于SGD的算法都只能进行有损的并行化。

2.2.6 LR如何解决低维不可分问题?

        通过特征变换的方式把低维空间转换到高维空间,而在低维空间不可分的数据,到高维空间中线性可分的几率会高一些。

        具体方法:核函数,如:高斯核,多项式核等等

2.2.7 LR与最大熵模型MaxEnt的关系?

        没有本质区别。LR是最大熵对应类别为二类时的特殊情况,也就是当LR类别扩展到多类别时,就是最大熵模型。

2.2.8 为什么 LR 用交叉熵损失而不是平方损失(MSE)?

        如果使用均方差作为损失函数,求得的梯度受到sigmoid函数导数的影响;

求导:

        如果使用交叉熵作为损失函数,没有受到sigmoid函数导数的影响,且真实值与预测值差别越大,梯度越大,更新的速度也就越快。

求导:

        记忆:mse的导数里面有sigmoid函数的导数,而交叉熵导数里面没有sigmoid函数的导数,sigmoid的导数的最大值为0.25,更新数据时太慢了。

2.2.9 LR能否解决非线性分类问题?

可以,只要使用kernel trick(核技巧)。不过,通常使用的kernel都是隐式的,也就是找不到显式地把数据从低维映射到高维的函数,而只能计算高维空间中数据点的内积。

2.2.10 用什么来评估LR模型?

  • 1.由于LR是用来预测概率的,可以用AUC-ROC曲线以及混淆矩阵来确定其性能。
  • 2.LR中类似于校正R2 的指标是AIC。AIC是对模型系数数量惩罚模型拟合度量。因此,更偏爱有最小的AIC的模型。

2.2.11 LR如何解决多分类问题?(OvR vs OvO

2.2.12 在训练的过程当中,如果有很多的特征高度相关或者说有一个特征重复了100,会造成怎样的影响?

        如果在损失函数最终收敛的情况下,其实就算有很多特征高度相关也不会影响分类器的效果。但是对特征本身来说的话,假设只有一个特征,在不考虑采样的情况下,你现在将它重复100遍。训练以后完以后,数据还是这么多,但是这个特征本身重复了100遍,实质上将原来的特征分成了100,每一个特征都是原来特征权重值的百分之一。如果在随机采样的情况下,其实训练收敛完以后,还是可以认为这100个特征和原来那一个特征扮演的效果一样,只是可能中间很多特征的值正负相消了。

2.2.13 为什么在训练的过程当中将高度相关的特征去掉?

  •         去掉高度相关的特征会让模型的可解释性更好。
  •        可以大大提高训练的速度。如果模型当中有很多特征高度相关的话,就算损失函数本身收敛了,但实际上参数是没有收敛的,这样会拉低训练的速度。
  •         其次是特征多了,本身就会增大训练的时间。

2.3 Lasso

        定义:所有参数绝对值之和,即L1范数,对应的回归方法。

Lasso(alpha=0.1)  # 设置学习率

2.4 Ridge

  • 定义:所有参数平方和,即L2范数,对应的回归方法。
  • 通过对系数的大小施加惩罚来解决 普通最小二乘法 的一些问题。
  • Ridge(alpha=0.1)   # 设置惩罚项系数

2.5 Lasso vs Ridge

2.6 线性回归 vs LR

        今日先更新到这里了,机器学习的总共为12章节,除此之外还有深度学习!等后续一序列更新~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1486798.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《UE5_C++多人TPS完整教程》学习笔记25 ——《P26 游戏项目创建(Project Creation)》

本文为B站系列教学视频 《UE5_C多人TPS完整教程》 —— 《P26 游戏项目创建(Project Creation)》 的学习笔记,该系列教学视频为 Udemy 课程 《Unreal Engine 5 C Multiplayer Shooter》 的中文字幕翻译版,UP主(也是译者…

【Linux信号】

目录 信号是什么Linux通过kill -l查看指令 信号的产生signal系统调用捕捉信号键盘产生信号系统调用产生信号进程异常产生信号软件条件发送信号 Code Dump信号保存信号抵达信号产生到信号抵达之间的状态叫信号未决。进程可以对信号进行阻塞使用sigprocmask()系统调用接口阻塞blo…

设计模式(九)模版方法模式

请直接看原文:设计模式(九)模版方法模式_模板方法模式的优缺点-CSDN博客 -------------------------------------------------------------------------------------------------------------------------------- 1.模版方法模式简介 模版方法模式介…

【架构笔记2】设计不足和过度设计

复杂系统问题设计中有两类现象需要引起关注:设计不足和过度设计,通常第一种比较常见,第二种则也是一种灾难。当然我认为他们都可以被优化,如果用正确的流程引导,在框架模板的限定下放飞,就像教养孩子有个观…

Git实战(1)

一, git log 查看提交日志情况 根据 commitId进行版本回退 git reset --hard commitId(commitId可以是一部分,不用完整的ID) 只输出一行信息: git log --pretty=oneline 快速回退: git reset --hard HEAD^ 回退到上一个版本 git reset --hard HEAD^^ 回退到上上个版本 如果…

力扣74. 搜索二维矩阵(二分查找)

Problem: 74. 搜索二维矩阵 文章目录 题目描述思路复杂度Code 题目描述 思路 思路1:映射为一维数组二分查找 1.由于题目矩阵中的元素整体是升序的,我们可以将其放置在一个大小为 m n m \times n mn的一维数组array中进行二分查找 2.对应的映射关系是ar…

蓝桥杯备赛 day1 | 1. 门牌制作, 2. 迷宫, 3. 乘积尾零

最近正好在刷算法题&#xff0c;报了一个蓝桥杯体验一下&#xff0c;但是钱都交了&#xff0c;高低混个奖好吧&#xff0c;今天做的都是一些填空推理题&#xff0c;相当于用程序写下正解&#xff0c;代码是在Dev C上面写的 #include<iostream> #include<bits/stdc.h&g…

HikariCP与Spring Boot的完美集成,让您的应用更高效、更可靠!

随着Spring Boot的流行&#xff0c;越来越多的开发者选择使用它来构建高效、可扩展的应用程序。然而&#xff0c;在构建应用程序的过程中&#xff0c;数据库连接的管理也是一个非常重要的环节。在这篇文章中&#xff0c;我们将介绍如何将HikariCP这一高效的数据库连接池与Sprin…

性能对比:mysql 5.7-8.0-TiDB 7.5-OceanBase 4.2-MariaDB 10.11-机械硬盘-固态硬盘-

1.mysql 5.7-8.0 5.7比8.0优秀 结果&#xff1a;5.7比8.0优秀 10% 2.机械硬盘和固态硬盘 影响不大&#xff0c;主要是CPU 3. JAVA MYSQL 分开 4.『直属 MySQL 』vs 『Docker MySQL』 vs 『Podman MySQL』 直属最好 &#xff0c;其次是Podman&#xff0c;最后是DOCKER 5.MySQL …

Python光速入门 - Flask轻量级框架

FlASK是一个轻量级的WSGI Web应用程序框架&#xff0c;Flask的核心包括Werkzeug工具箱和Jinja2模板引擎&#xff0c;它没有默认使用的数据库或窗体验证工具&#xff0c;这意味着用户可以根据自己的需求选择不同的数据库和验证工具。Flask的设计理念是保持核心简单&#xff0c…

Qt/事件分发器/事件过滤器

事件分发器 //事件分发器bool event(QEvent* e); //事件分发器&#xff1a;&#xff1a;用途 分发事件 bool MyLabel::event(QEvent* e) {if(e->type() QEvent::MouseButtonPress){//如果是鼠标摁下 拦截事件 不向下分发QMouseEvent* ev static_cast<QMouseEvent*>…

【JS 算法题: 将 json 转换为字符串】

题目简介 其实就是手撕 JSON.stringfy()。 算法实现 输入 原则上来说&#xff0c;输入的是一个 json 对象。但需要考虑到异常情况&#xff0c;即输入了其它类型的数据&#xff0c;比如&#xff1a;12, true, ‘abc’, [‘red’, ‘green’], null, undefined 等。 输出 …

AGM CPLD (AGRV2K )的时钟(外部时钟和片上内部振荡器)

AGM CPLD &#xff08;AGRV2K &#xff09;的时钟(外部时钟和片上内部振荡器) 外部晶振 与 内部振荡器&#xff1a; mcu 和 cpld 联合编程时&#xff0c; 整颗芯片需要一颗外部晶振。 &#xff08;芯片有内部振荡器&#xff0c; 但误差较大&#xff0c; 校准后 5%以内误差&…

LSTM 长短期记忆递归神经网络

1、神经网络简介 1.1 神经网络起源 人工神经网络&#xff08;Aritificial Neural Networks, ANN&#xff09;是一种仿生的网络结构&#xff0c;起源于对人类大脑的研究。人工神经网络&#xff08;Aritificial Neural Networks&#xff09;也常被简称为神经网络&#xff08;Ne…

Vue3_2024_3天【Vue3组合式API~响应式及toRefs】

第一&#xff1a;vue3 中可以两个script标签 第一个&#xff1a;声明组件名 第二个&#xff1a;setup语法糖&#xff08;默认 lang语言是js语言&#xff0c;修改语言须保持一致&#xff09; 若想去掉一个script标签&#xff08;声明组件名称&#xff09;&#xff0c;则可使用插…

八. 实战:CUDA-BEVFusion部署分析-学习CUDA-BEVFusion推理框架设计模式

目录 前言0. 简述1. 回顾一下RAII是什么2. 实现类&#xff0c;接口类与命名空间3. CUDA-BEVFusion设计框架(namespace)4. CUDA-BEVFusion设计框架(接口类)5. CUDA-BEVFusion设计框架(实现类)6. CUDA-BEVFusion设计框架(各个类负责的内容)7. CUDA-BEVFusion中的接口函数和实现类…

failed to connect to ‘127.0.0.1:58526‘: Connection refused

WSA使用体验 链接&#xff1a; 知乎-穿越时间一步到位&#xff0c;教你完美安装Windows 11 Android 安卓子系统 CPU不满足要求 明明是12700H&#xff0c;满足要求&#xff0c;但是应用商店说不满足&#xff0c;在设置&#xff08;注意不是控制面板的区域&#xff09;把地区改…

ChatGPT 4.0使用之论文阅读

文章目录 阅读环境准备打开AskYourPDF进入主站 粗读论文直接通过右侧边框进行提问选中文章内容翻译或概括插图的理解 总结 拥有了GPT4.0之后&#xff0c;最重要的就是学会如何充分发挥它的强大功能&#xff0c;不然一个月20美元的费用花费的可太心疼了&#xff08;家境贫寒&…

HTML~

HTML HTML是一门语言&#xff0c;所有的网页都是用HTML这门语言编写出来的HTML(HyperText Markup Language):超文本标记语言 超文本:超越了文本的限制&#xff0c;比普通文本更强大。除了文字信息&#xff0c;还可以定义图片、音频、视频等内容 标记语言:由标签构成的语言 …

谨用ArrayList中的subList方法

谨用ArrayList中的subList方法 规范一&#xff1a; ArrayList 的 subList 结果不可强转成 ArrayList&#xff0c;否则会抛出 ClassCastException 异常&#xff1a; public static void test7() {List<Integer> list new ArrayList<>();list.add(1);list.add(2);…