2024 年 100 大数据科学面试问答
一、说明
数据科学是一个快速发展的领域,它正在改变组织根据数据理解和做出决策的方式。因此,公司越来越多地寻求聘请数据科学家来帮助他们理解数据并推动业务成果。这导致了对数据科学家的高需求,这些职位的竞争可能非常激烈。为了帮助您准备数据科学面试,我们编制了一份您可能遇到的前 100 个数据科学面试问题列表。
我们包含的问题涵盖了广泛的主题,包括:
Python 面试问题
探索性数据分析面试问题
概率与统计面试问题
机器学习面试问题
每个数据科学面试问题都包括对其测试的关键概念和技能的简要解释,以及有关如何处理和回答问题的提示。通过熟悉这些问题并练习您的回答,您将为下一次面试做好充分准备,了解这些数据科学面试问题。
目录
关于 Python 的数据科学面试问题
让我们看看关于 Python 的数据科学面试问题和答案。
二、初学者面试:数据科学的 Python 问题
2.1 问题1.python list 和 Numpy 数组哪个更快,为什么?
一个。 NumPy 数组比 Python 列表的数值运算更快。NumPy 是一个用于在 Python 中处理数组的库,它提供了许多用于高效执行数组操作的函数。
NumPy 数组比 Python 列表快的一个原因是 NumPy 数组是用 C 实现的,而 Python 列表是用 Python 实现的。这意味着对 NumPy 数组的操作是用编译语言实现的,这使得它们比对 Python 列表的操作更快,后者是用解释语言实现的。
问题2.python 列表和元组有什么区别?
一个。在 Python 中,列表是可以具有不同类型的对象的有序集合。列表是可变的,这意味着您可以更改列表元素的值,或者在列表中添加或删除元素。列表是使用方括号和逗号分隔的值列表创建的。
元组也是对象的有序集合,但它是不可变的,这意味着您不能更改元组元素的值,也不能在元组中添加或删除元素。
列表使用方括号 ([ ‘’ ]) 定义,而元组使用括号 ((‘’, )) 定义。
列表具有多种用于添加、删除和操作元素的内置方法,而元组则没有这些方法。
通常,元组比 Python 中的列表快
问题3.什么是 python 集?解释集合的一些属性。
一个。 在 Python 中,集合是唯一对象的无序集合。集合通常用于存储不同对象的集合并执行成员资格测试(即,检查对象是否在集合中)。使用大括号({ 和 })和逗号分隔的值列表定义集合。
以下是 Python 中集合的一些关键属性:
集合是无序的:集合没有特定的顺序,因此您不能像使用列表或元组那样对它们进行索引或切片。
集合是唯一的:集合只允许唯一的对象,因此,如果尝试将重复的对象添加到集合中,则不会添加该对象。
集合是可变的:可以使用 add 和 remove 方法在集合中添加或删除元素。
集不编制索引:集不支持索引或切片,因此无法使用索引访问集的单个元素。
集合不可散列:集合是可变的,因此它们不能用作字典中的键或其他集合中的元素。如果需要将可变对象用作集合中的键或元素,则可以使用元组或冻结集合(集合的不可变版本)。
问题4.split 和 join 有什么区别?
一个。 拆分和连接都是 python 字符串的功能,但在功能方面完全不同。
split 函数用于从基于某些分隔符的字符串创建列表,例如。空间。
例如。a = ‘this is a sting’
Li = a.split(' ')
print(li)
输出 – [‘This’, ‘is’, ‘a’, ‘string’]
join() 方法是 Python str 类的内置函数,它将字符串列表连接成一个字符串。它对分隔符字符串调用,并使用要联接的字符串列表进行调用。当字符串连接时,分隔符字符串将插入到列表中的每个字符串之间。
下面是如何使用 join() 方法的示例:
例如。 “ ”.join(li)
输出 – 这是一个字符串
在这里,列表与中间的空格连接起来。
问题5.解释 python 中的逻辑运算。
一个。 在 Python 中,逻辑运算 and、or 和 not 可用于对真值(True 和 False)执行布尔运算。
如果两个操作数均为 True,则 and 运算符返回 True,否则返回 False。
如果任一操作数为 True,则 or 运算符返回 True,如果两个操作数均为 False,则返回 False。
not 运算符反转其操作数的布尔值。如果操作数为 True,则不返回 False,如果操作数为 False,则不返回 True。
问题6.解释用于 python 字符串的前 5 个函数。
一个。以下是排名前 5 位的 Python 字符串函数:
功能 | 描述 |
---|---|
len() | 返回字符串的长度。 |
stripe() | 从字符串中删除前导和尾随空格。 |
split() | 根据分隔符将字符串拆分为子字符串列表。 |
replace() | 将指定字符串的所有匹配项替换为另一个字符串。 |
upper() | 将字符串转换为大写。 |
lower() | 将字符串转换为小写。 |
s = 'Hello, World!'
len(s) # 13
s.strip() # 'Hello, World!'
s.split(',') # ['Hello', ' World!']
s.replace('World', 'Universe') # 'Hello, Universe!'
s.upper() # 'HELLO, WORLD!'
s.lower() # 'hello, world!'
问题7.python 中 pass 关键字有什么用?
A. pass 是一个 null 语句,不执行任何操作。它通常用作占位符,其中在语法上需要语句,但不需要执行任何操作。例如,如果要定义函数或类,但尚未决定它应该做什么,则可以使用 pass 作为占位符。
问题8.python 中 continue 关键字有什么用?
一个。 在循环中使用 continue 来跳过当前迭代并转到下一个迭代。当遇到 continue 时,循环的当前迭代将终止,下一个迭代将开始。
中级面试 Python 数据科学问题
问题9.什么是不可变和可变数据类型?
一个。 在 Python 中,不可变对象是创建后状态无法修改的对象。这意味着,一旦创建了不可变对象,就无法更改其值。Python 中不可变对象的示例包括数字(如整数、浮点数和复数)、字符串和元组。
另一方面,可变对象是创建后可以修改其状态的对象。这意味着您可以在创建可变对象后更改其值。Python 中可变对象的示例包括列表和字典。
了解 Python 中不可变对象和可变对象之间的区别非常重要,因为它会影响您在代码中使用和操作数据的方式。例如,如果您有一个数字列表,并且想要按升序对列表进行排序,则可以使用内置的 sort() 方法来执行此操作。但是,如果您有一个数字元组,则不能使用 sort() 方法,因为元组是不可变的。相反,您必须从原始元组创建新的排序元组。
问题10.python 中的 try and accept 块有什么用
一个。 Python 中的 try 和 except 块用于处理异常。异常是在程序执行过程中发生的错误。
try 块包含可能导致引发异常的代码。except 块包含在 try 块执行期间引发异常时执行的代码。
使用 try-except 块将保存代码,使其免于发生错误,并且可以使用我们想要的 except 块中的消息或输出来执行。
问题11.python 中的 2 种可变数据类型和 2 种不可变数据类型是什么?
一个。 2 种可变数据类型是 –
- Dictionary
- List
您可以更改/编辑 python 字典和列表中的值。没有必要创建一个新列表,这意味着它满足可变性属性。
2 种不可变数据类型包括:
- Tuples
- String
创建元组中的字符串或值后,无法对其进行编辑。您需要将值分配给元组或创建一个新元组。
问题12.什么是 python 函数,它们如何帮助代码优化?
一个。 在 Python 中,函数是可以由程序的其他部分调用的代码块。函数很有用,因为它们允许您重用代码并将代码划分为可以单独测试和维护的逻辑块。
要在 Python 中调用函数,只需使用函数名称后跟一对括号和任何必要的参数即可。该函数可能会也可能不会返回一个值,该值取决于 turn 语句的用法。
函数还可以帮助代码优化:
代码重用:函数允许你通过将代码封装在单个位置并从程序的不同部分多次调用代码来重用代码。这有助于减少冗余,使代码更简洁、更易于维护。
提高可读性:通过将代码划分为逻辑块,函数可以使代码更具可读性和更易于理解。这样可以更轻松地识别错误并更改代码。
更轻松的测试:函数允许您单独测试单个代码块,从而更轻松地查找和修复错误。
改进性能:函数还允许使用优化的代码库或允许 Python 解释器更有效地优化代码,从而帮助提高代码的性能。
问题13.为什么NumPy在数据科学领域大受欢迎?
一个。 NumPy(Numerical Python 的缩写)是 Python 中用于科学计算的流行库。它在数据科学界广受欢迎,因为它为处理大型数值数据数组和矩阵提供了快速有效的工具。
NumPy 提供对数值数据数组和矩阵的快速高效操作。它在后台使用优化的 C 和 Fortran 代码来执行这些操作,这使得它们比使用 Python 内置数据结构的等效操作快得多。它为处理大型数组和数值数据矩阵提供了快速高效的工具。
NumPy 提供了大量用于对数组和矩阵执行数学和统计运算的函数。
它允许您有效地处理大量数据。它提供了用于处理不适合内存的大型数据集的工具,例如用于在磁盘上读取和写入数据以及一次仅将数据集的一部分加载到内存中的函数。
NumPy 与 Python 中的其他科学计算库很好地集成,例如 SciPy(科学 Python)和 pandas。这使得将 NumPy 与其他库一起使用以执行更复杂的数据科学任务变得容易。
问题14.解释列表理解和听写理解。
一个。 列表推导式和字典推导式都是从现有可迭代对象创建新列表或词典的简洁方法。
列表推导是创建列表的简洁方法。它由方括号组成,其中包含一个表达式,后跟一个 for 子句,然后是零个或多个 for 或 if 子句。结果是一个新列表,该列表在 for 和 if 子句的上下文中计算表达式。
Dict comprehension 是创建词典的简洁方法。它由包含键值对的大括号组成,后跟一个 for 子句,然后是零个或多个 for 或 if 子句。结果是一个新字典,用于在 for 和 if 子句的上下文中计算键值对。
问题15.python 中的全局变量和局部变量是什么?
一个。 在 Python 中,在任何函数或类外部定义的变量是全局变量,而在函数或类内部定义的变量是局部变量。
可以从程序中的任何位置访问全局变量,包括函数和类内部。但是,局部变量只能在定义它的函数或类中访问。
需要注意的是,可以对全局变量和局部变量使用相同的名称,但局部变量将优先于定义全局变量的函数或类中的全局变量。
# This is a global variable
x = 10
def func():# This is a local variablex = 5print(x)my_function
func()
print(x)
输出 – 这将打印 5 个,然后打印 10 个
在上面的示例中,func() 函数中的 x 变量是局部变量,因此它优先于全局变量 x。因此,当 x 在函数内部打印时,它打印 5;当它在函数之外打印时,它会打印 10。
问题16.什么是有序词典?
一个。 有序字典(也称为 OrderedDict)是内置 Python 字典类的子类,用于维护添加这些字典的元素的顺序。在常规字典中,元素的顺序由其键的哈希值决定,随着字典的发展和演变,这些哈希值会随着时间的推移而变化。另一方面,有序字典使用双链表来记住元素的顺序,因此无论字典如何更改,都会保留元素的顺序。
问题17.return 和 yield 关键字有什么区别?
一个。 Return 用于退出函数并向调用方返回值。当遇到 return 语句时,函数会立即终止,并且 return 语句后面的表达式的值将返回给调用方。
另一方面,yield 用于定义生成器函数。生成器函数是一种特殊的函数,它一次生成一个值序列,而不是返回单个值。当遇到 yield 语句时,生成器函数会生成一个值并暂停其执行,从而保存其状态以备后用
高级 Python 面试问题
问题18.Python 中的 lambda 函数是什么,为什么它们很重要?
一个。 在 Python 中,lambda 函数是一个小型匿名函数。当您不想使用 def 关键字定义函数时,可以使用 lambda 函数。
当您在短时间内需要小型函数时,Lambda 函数非常有用。它们通常与高阶函数结合使用,例如 map()、filter() 和 reduce()。
下面是 Python 中 lambda 函数的示例:
x = lambda a : a + 10
x(5)
15
在此示例中,lambda 函数采用一个参数 (a) 并向其添加 10。lambda 函数在调用时返回此操作的结果。
Lambda 函数非常重要,因为它们允许您以简洁的方式创建小型匿名函数。它们通常用于函数式编程,这是一种强调使用函数解决问题的编程范式。
问题19.python 中“assert”关键字有什么用?
一个。 在 Python 中,assert 语句用于测试条件。如果条件为 True,则程序继续执行。如果条件为 False,则程序将引发 AssertionError 异常。
assert 语句通常用于检查程序的内部一致性。例如,在对列表执行二进制搜索之前,可以使用 assert 语句来检查列表是否已排序。
请务必注意,assert 语句用于调试目的,而不是用作处理运行时错误的方法。在生产代码中,应使用 try 和 except 块来处理运行时可能引发的异常。
问题20.python 中的装饰器是什么?
一个。 在 Python 中,装饰器是一种在不更改源代码的情况下修改或扩展函数、方法或类的功能的方法。装饰器通常实现为将另一个函数作为参数并返回具有所需行为的新函数的函数。
装饰器是一种特殊函数,它以 @ 符号开头,并紧接在它所修饰的函数、方法或类之前。@ 符号用于指示以下函数是装饰器。
关于EDA和统计学的面试问题
让我们看看有关 EDA 和统计学的数据科学面试问题和答案。
统计学初学者面试问题
问题21.如何对数值变量和分类变量进行单变量分析?
一个。 单变量分析是一种统计技术,用于分析和描述单个变量的特征。它是一种有用的工具,可用于了解变量的分布、集中趋势和离散,以及识别数据中的模式和关系。以下是对数值变量和分类变量执行单变量分析的步骤:
对于数值变量:
计算描述性统计量(如均值、中位数、众数和标准差),以汇总数据的分布。
使用直方图、箱线图或密度图等图可视化数据分布。
检查数据中的异常值和异常。
使用统计检验或可视化(如 Q-Q 图)检查数据的正态性。
对于分类变量。
计算数据中每个类别的频率或计数。
计算数据中每个类别的百分比或比例。
使用条形图或饼图等图可视化数据分布。
检查数据分布中的不平衡或异常。
请注意,执行单变量分析的具体步骤可能因分析的具体需求和目标而异。仔细计划和执行分析非常重要,以便准确有效地描述和理解数据。
问题22.我们可以通过哪些不同的方式找到数据中的异常值?
一个。 异常值是与大多数数据显著不同的数据点。它们可能是由错误、异常或异常情况引起的,并且会对统计分析和机器学习模型产生重大影响。因此,为了获得准确可靠的结果,正确识别和处理异常值非常重要。
以下是查找数据异常值的一些常用方法:
目视检查:通常可以通过使用直方图、散点图或箱线图等图目视检查数据来识别异常值。
汇总统计:有时可以通过计算汇总统计量(如平均值、中位数或四分位距)并将其与数据进行比较来识别异常值。例如,如果均值与中位数显著不同,则可能表示存在异常值。
Z 分数:数据点的 z 分数是衡量它与平均值有多少个标准差的度量。z 分数大于特定阈值(例如,3 或 4)的数据点可被视为异常值。
还有许多其他方法可以检测数据中的异常值,适当的方法将取决于数据的具体特征和需求。为了获得准确可靠的结果,仔细评估和选择最合适的方法来识别异常值非常重要。
问题23. 您可以通过哪些不同方式插补数据集中的缺失值?
一个。 有几种方法可以插补数据集中的空值(即缺失值):
删除行:一种选择是简单地从数据集中删除具有 null 值的行。这是一种简单而快速的方法,但如果删除大量行,则可能会出现问题,因为它会显着减少样本量并影响分析的统计功效。
删除列:另一种选择是从数据集中删除具有 null 值的列。如果 null 值的数量与非 null 值的数量相比很大,或者如果列与分析无关,这可能是一个不错的选择。
使用平均值或中位数进行插补:一种常用的插补方法是将空值替换为列中非空值的平均值或中位数。如果数据是随机缺失的,并且平均值或中位数是数据的合理表示,这可能是一个不错的选择。
使用模式插补:另一种选择是将 null 值替换为列中非 null 值的 mode(即最常见的值)。对于分类数据来说,这可能是一个不错的选择,其中模式是数据的有意义的表示形式。
使用预测模型进行插补:另一种插补方法是使用预测模型根据其他可用数据估计缺失值。这可能是一种更复杂、更耗时的方法,但如果数据不是随机丢失的,并且缺失值与其他数据之间存在很强的关系,则这种方法可能更准确。
问题24. 什么是统计学中的偏度及其类型?
一个。 偏度是分布对称性的度量。如果分布的形状像钟形曲线,则分布是对称的,并且大多数数据点都集中在平均值附近。如果分布不对称,则分布是偏态的,平均值一侧的数据点比另一侧的数据点多。
偏度有两种类型:正偏度和负偏度。
正偏度:当分布的右侧有一条长尾,大多数数据点集中在均值的左侧时,就会发生正偏度。正偏度表示分布右侧有几个极值将均值拉向右侧。
负偏度:当分布的左侧有一条长尾,大多数数据点集中在均值的右侧时,就会发生负偏度。负偏度表示分布左侧有几个极值将均值拉向左侧。
问题25.集中趋势的衡量标准是什么?
一个。 在统计学中,集中趋势的度量是表示数据集中心的值。集中趋势有三个主要度量:均值、中位数和众数。
均值是数据集的算术平均值,计算方法是将数据集中的所有值相加并除以值的数量。均值对异常值或明显高于或低于数据集中大多数其他值的值敏感。
当值按从小到大的顺序排列时,中位数是数据集的中间值。要找到中位数,必须首先按顺序排列值,然后找到中间值。如果值为奇数,则中位数为中间值。如果值为偶数,则中位数是两个中间值的平均值。中位数对异常值不敏感。
模式是数据集中出现频率最高的值。一个数据集可能有多个模式,也可能根本没有模式。该模式对异常值不敏感。
问题26.您能解释一下描述性统计和推论性统计之间的区别吗?
一个。 描述性统计用于通过使用集中趋势度量(均值、中位数、众数)和传播度量(标准差、方差、范围)来总结和描述数据集。推论统计用于根据数据样本并使用统计模型、假设检验和估计对总体进行推断。
问题27.EDA 报告的关键要素是什么,它们如何有助于理解数据集?
一个。EDA 报告的关键要素包括单变量分析、双变量分析、缺失数据分析和基本数据可视化。单变量分析有助于理解单个变量的分布,双变量分析有助于理解变量之间的关系,缺失数据分析有助于理解数据质量,数据可视化提供对数据的可视化解释。
关于数据科学统计学的中级面试问题
Q28 什么是中心极限定理?
一个。 中心极限定理是统计学中的一个基本概念,它指出随着样本量的增加,样本均值的分布将接近正态分布。无论从中抽取样本的总体的基本分布如何,都是如此。这意味着,即使样本中的单个数据点不是正态分布的,通过取足够多的数据点的平均值,我们也可以使用基于正态分布的方法来推断总体。
问题29.提及预测建模的两种目标变量。
一个。 两种目标变量是:
数值/连续变量 – 值位于某个范围内的变量可以是该范围内的任何值和预测时间;值也不一定来自同一范围。
例如:学生身高 – 5;5.1;6;6.7;7;4.5;5.11
这里的值范围是 (4,7)
而且,一些新生的身高可以/不能是这个范围内的任何值。
分类变量 – 可以采用有限且通常固定的可能值之一的变量,根据某些定性属性将每个个体或其他观察单位分配给特定组。
可以正好接受两个值的分类变量称为二元变量或二分变量。具有两个以上可能值的分类变量称为多元变量
例如考试结果:通过、失败(二元分类变量)
一个人的血型:A、B、O、AB(多样分类变量)
问题30. 在什么情况下,数据集的均值、中位数和众数相同?
一个。 当且仅当数据集由以 100% 频率出现的单个值组成时,数据集的均值、中位数和众数都将相同。
例如,考虑以下数据集:3、3、3、3、3、3。 该数据集的平均值为 3,中位数为 3,众数为 3。这是因为数据集由一个以 100% 频率出现的值 (3) 组成。
另一方面,如果数据集包含多个值,则均值、中位数和众数通常会有所不同。例如,考虑以下数据集:1、2、3、4、5。 此数据集的平均值为 3,中位数为 3,众数为 1。这是因为数据集包含多个值,并且没有值以 100% 的频率出现。
需要注意的是,均值、中位数和众数可能会受到数据集中的异常值或极值的影响。如果数据集包含极值,则均值和中位数可能与众数显著不同,即使数据集由高频率出现的单个值组成也是如此。
问题31.统计学中的方差和偏差有什么区别?
一个。 在统计学中,方差和偏差是衡量模型或估计器质量或准确性的两种度量。
方差:方差衡量数据集中的分布或离散量。它计算为与平均值的平均平方偏差。高方差表示数据分散,可能更容易出错,而低方差表示数据集中在均值附近,可能更准确。
偏差:偏差是指估计器的期望值与被估计参数的真实值之间的差值。高偏差表示估计器始终低估或高估真实值,而低偏差表示估计器更准确。
在评估模型或估计器的质量时,必须同时考虑方差和偏差。低偏差和高方差的模型可能容易出现过拟合,而具有高偏差和低方差的模型可能容易出现欠拟合。在偏差和方差之间找到适当的平衡是模型选择和优化的一个重要方面。
问题32.I 类和 II 类错误之间有什么区别?
一个。 假设检验中可能出现两种类型的错误:I 类错误和 II 类错误。
当原假设为真但被拒绝时,会发生 I 类错误,也称为“误报”。这种类型的误差用希腊字母 alpha (α) 表示,通常设置为 0.05 级别。这意味着有 5% 的几率出现 I 类错误或误报。
II 类错误(也称为“假阴性”)发生在原假设为假但未被拒绝时。这种类型的错误用希腊字母 beta (β) 表示,通常表示为 1 – β,其中 β 是测试的功效。检验的功效是当原假设为假时正确拒绝原假设的概率。
在假设检验中尽量减少这两种类型的错误的可能性是很重要的。
问题33.统计学中的置信区间是什么?
一个。 置信区间是如果我们重复实验,我们期望结果所在的范围。它是结果的平均值加上减去预期变异。
后者由估计值的标准误差确定,而区间的中心与估计值的平均值重合。最常见的置信区间是 95%。
问题34.您能解释一下相关性和协方差的概念吗?
答:相关性是一种统计度量,用于描述两个变量之间线性关系的强度和方向。正相关表示两个变量一起增加或减少,而负相关表示两个变量沿相反方向移动。协方差是两个随机变量的联合变异性的度量。它用于衡量两个变量之间的关系。
高级统计面试问题
问题35.为什么假设检验对数据科学家有用?
一个。 假设检验是数据科学中使用的一种统计技术,用于评估关于总体的声明或假设的有效性。它用于确定是否有足够的证据来支持主张或假设,并评估结果的统计显着性。
在数据科学中,在许多情况下,假设检验是有用的。例如,它可用于测试新营销活动的有效性,确定两组均值之间是否存在显著差异,评估两个变量之间的关系,或评估预测模型的准确性。
假设检验是数据科学中的一个重要工具,因为它允许数据科学家根据数据做出明智的决策,而不是依赖假设或主观意见。它帮助数据科学家得出有统计证据支持的数据结论,并以清晰可靠的方式传达他们的发现。因此,假设检验是科学方法的关键组成部分,也是数据科学实践的一个基本方面。
问题36.统计学中用于独立性的卡方检验是什么?
一个。 独立性卡方检验是一种统计检验,用于确定两个分类变量之间是否存在显著关联。它用于检验两个变量是独立的原假设,这意味着一个变量的值不依赖于另一个变量的值。
独立性卡方检验涉及计算卡方统计量并将其与临界值进行比较,以确定观察到的关系偶然发生的概率。如果概率低于某个阈值(例如,0.05),则原假设将被拒绝,并得出结论,两个变量之间存在显著关联。
独立性卡方检验在数据科学中常用于评估两个分类变量之间的关系,例如性别与购买行为之间的关系,或教育水平与投票偏好之间的关系。它是了解不同变量之间关系并根据数据做出明智决策的重要工具。
问题37.p 值的意义是什么?
一个。 p 值用于确定结果的统计显著性。在假设检验中,p 值用于评估获得至少与观察到的结果一样极端的结果的概率,前提是原假设为真。如果 p 值小于预定的显著性水平(通常表示为 alpha、α),则认为结果具有统计显著性,原假设将被拒绝。
p 值的意义在于,它允许研究人员根据预定的置信度对数据做出决策。通过在进行统计检验之前设置显著性水平,研究人员可以确定结果是否可能是偶然发生的,或者数据中是否存在实际影响。
问题38.数据分析师使用哪些不同类型的抽样技术?
一个。 数据分析师可以使用许多不同类型的抽样技术,但一些最常见的技术包括:
简单随机抽样:这是一种基本的抽样形式,其中总体的每个成员都有平等的机会被选中作为样本。
分层随机抽样: 该技术涉及根据某些特征将总体划分为子组(或层),然后从每个层中随机选择一个样本。
整群抽样:这种技术涉及将总体划分为更小的组(或聚类),然后选择随机的聚类样本。
系统抽样:该技术涉及选择要包含在样本中的总体的每个 k 个成员。
问题39.什么是贝叶斯定理,它如何在数据科学中使用?
一个。 贝叶斯定理是一个数学公式,它基于可能与事件相关的条件的先验知识来描述事件发生的概率。在数据科学中,贝叶斯定理通常用于贝叶斯统计和机器学习,用于分类、预测和估计等任务。
贝叶斯的Threorem,
问题40.参数测试和非参数测试有什么区别?
一个。 参数检验是一种统计检验,它假定数据遵循特定的概率分布,例如正态分布。非参数检验不会对数据的潜在概率分布做出任何假设。
与机器学习相关的面试问题
让我们看看有关机器学习的数据科学面试问题和答案。
数据科学初学者 ML 面试问题
问题41.特征选择和提取有什么区别?
一个。 特征选择是我们过滤应馈送到模型的特征的技术。这是我们选择最相关功能的任务。在确定模型预测方面显然没有任何重要性的特征将被拒绝。
另一方面,特征选择是从原始数据中提取特征的过程。它涉及将原始数据转换为一组可用于训练 ML 模型的特征。
这两者都非常重要,因为它们有助于过滤 ML 模型的特征,这有助于确定模型的准确性。
问题42.线性回归的 5 个假设是什么?
一个。 以下是线性回归的 5 个假设:
线性:自变量和因变量之间存在线性关系。
误差的独立性:误差(残差)彼此独立。
同方差:误差的方差在所有预测值中都是恒定的。
正态性:误差服从正态分布。
预测变量的独立性:自变量彼此不相关。
问题43.线性回归和非线性回归有什么区别?
一个。 线性回归是用于查找因变量与一个或多个自变量之间关系的方法。该模型找到最佳拟合线,该线是一个线性函数 (y = mx +c),有助于以考虑所有数据点的误差最小的方式拟合模型。因此,线性回归函数的决策边界是线性的。
非线性回归用于通过非线性方程对因变量与一个或多个自变量之间的关系进行建模。非线性回归模型更灵活,能够找到变量之间更复杂的关系。
问题44.您将如何识别模型中的欠拟合?
一个。 当统计模型或机器学习算法无法捕获数据的潜在趋势时,就会发生欠拟合。发生这种情况的原因可能有多种,但一个常见的原因是模型过于简单,无法捕获数据的复杂性
以下是识别模型中欠拟合的方法:
欠拟合误差的训练误差会很高,即模型将无法从训练数据中学习,并且在训练数据上表现不佳。
欠拟合模型的验证误差也会很高,因为它在新数据上的表现也很差。
问题45.如何识别模型中的过拟合?
一个。 当模型学习整个训练数据而不是从数据中获取信号/提示时,就会发生模型中的过拟合,并且模型在训练数据上表现非常出色,而在测试数据上表现不佳。
与训练误差相比,模型的测试误差较高。过拟合模型的偏差较低,而方差较高。
问题46.有哪些技术可以避免过度拟合?
一个。 一些可用于避免过度拟合的技术;
训练-验证-测试拆分:避免过度拟合的一种方法是将数据拆分为训练集、验证集和测试集。模型在训练集上进行训练,然后在验证集上进行评估。然后,根据验证集上的性能调整超参数。模型最终确定后,将在测试集上对其进行评估。
提前停止:避免过度拟合的另一种方法是使用提前停止。这包括训练模型,直到验证错误达到最小值,然后停止训练过程。
正规化:正则化是一种技术,可用于通过向目标函数添加惩罚项来防止过拟合。该术语鼓励模型具有较小的权重,这有助于降低模型的复杂性并防止过拟合。
集成方法:集成方法涉及训练多个模型,然后组合它们的预测以做出最终预测。这可以通过对各个模型的预测进行平均来帮助减少过度拟合,这有助于减少最终预测的方差。
问题47.有哪些技巧可以避免欠拟合?
一个。 防止模型欠拟合的一些技术:
特征选择:选择训练模型所需的正确特征非常重要,因为选择错误的特征会导致欠拟合。
增加特征的数量有助于避免欠拟合
使用更复杂的机器学习模型
使用超参数优化微调模型中的参数
噪声:如果数据中存在更多噪声,模型将无法检测到数据集的复杂性。
问题48.什么是多重共线性?
一个。 当多元回归模型中的两个或多个预测变量高度相关时,就会发生多重共线性。这可能导致系数不稳定和不一致,并难以解释模型的结果。
换句话说,当两个或多个预测变量之间存在高度相关性时,就会发生多重共线性。这使得确定每个预测变量对响应变量的唯一贡献变得困难,因为其系数的估计值可能会受到其他相关变量的影响。
问题49.解释回归和分类问题。
一个。 回归是一种对一个或多个自变量与因变量之间的关系进行建模的方法。回归的目的是了解自变量与因变量的关系,并能够根据自变量的新值对因变量的值进行预测。
分类问题是一种机器学习问题,其目标是预测给定输入的离散标签。换言之,这是一个根据包含观测值的训练数据集来确定新观测值属于哪一组类别的问题。
问题50.K-means 和 KNN 有什么区别?
一个。 K-means 和 KNN(K-Nearest Neighbors)是两种不同的机器学习算法。
K-means 是一种聚类算法,用于将一组数据点划分为 K 个聚类,其中每个数据点都属于平均值最接近的聚类。它是一种迭代算法,将数据点分配给聚类,然后根据分配给聚类的数据点更新聚类质心(平均值)。
另一方面,KNN 是一种分类算法,用于根据数据点与其他数据点的相似性对数据点进行分类。它的工作原理是在训练集中查找与要分类的数据点最相似的 K 个数据点,然后将该数据点分配给这些 K 个数据点中最常见的类。
因此,综上所述,K-means用于聚类,KNN用于分类。
问题51.Sigmoid 和 Softmax 和有什么不一样?
一个。 在 Sigmoid 函数中,如果您的输出是二进制 (0,1),则对输出层使用 sigmoid 函数。sigmoid 函数出现在深度学习模型的输出层中,用于预测基于概率的输出。
softmax 函数是神经网络中使用的另一种激活函数,用于计算实数向量的概率分布。
此函数主要用于多类模型,其中它返回每个类的概率,目标类具有最高的概率。
sigmoid 和 softmax 激活函数之间的主要区别在于,前者用于二元分类,后者用于多变量分类
问题52.我们可以使用逻辑回归进行多类分类吗?
一个。 是的,逻辑回归可用于多类分类。
逻辑回归是一种分类算法,用于预测属于某个类的数据点的概率。它是一种二元分类算法,这意味着它只能处理两个类。但是,有一些方法可以将逻辑回归扩展到多类分类。
一种方法是使用一对多 (OvA) 或一对休息 (OvR) 策略,在这种策略中,训练 K 个逻辑回归分类器,每个类一个,并将一个数据点分配给具有最高预测概率的类。如果为每个类训练一个分类器,而另一个类是类的“其余”,则称为 OvA。如果为每个类训练一个分类器,而另一个类是类的“全部”,则称为 OvR。
另一种方法是使用多项式逻辑回归,这是逻辑回归对有两个以上类的情况的推广。在多项式逻辑回归中,为每对类训练一个逻辑回归分类器,并使用预测概率将数据点分配给概率最高的类。
因此,综上所述,逻辑回归可用于使用 OvA/OvR 或多项式逻辑回归的多类分类。
问题53.您能解释一下监督机器学习背景下的偏差-方差权衡吗?
一个。在监督机器学习中,目标是建立一个模型,可以对看不见的数据做出准确的预测。但是,模型能够很好地拟合训练数据的能力(低偏差)与其泛化到新数据的能力(低方差)之间存在权衡。
具有高偏差的模型往往会欠数据拟合,这意味着它不够灵活,无法捕获数据中的模式。另一方面,具有高方差的模型往往会过度拟合数据,这意味着它对训练数据中的噪声和随机波动过于敏感。
偏差-方差权衡是指这两种误差之间的权衡。具有低偏差和高方差的模型可能会过度拟合数据,而具有高偏差和低方差的模型可能会对数据进行欠拟合。
为了平衡偏差和方差之间的权衡,我们需要找到一个具有适合手头问题的复杂度的模型。如果模型过于简单,它将具有高偏差和低方差,但它将无法捕获数据中的潜在模式。如果模型过于复杂,它将具有低偏差和高方差,但它对数据中的噪声很敏感,并且不会很好地泛化到新数据。
问题54.如何判断模型是存在高偏差还是高方差?
一个。 有几种方法可以确定模型是存在高偏差还是高方差。一些常见的方法是:
将数据拆分为训练集和测试集,并检查模型在两个集上的性能。如果模型在训练集上表现良好,但在测试集上表现不佳,则可能会出现高方差(过拟合)。如果模型在两个集合上都表现不佳,则它可能存在高偏差(欠拟合)。
使用交叉验证来估计模型的性能。如果模型具有较高的方差,则性能将根据用于训练和测试的数据而有很大差异。如果模型具有高偏差,则在不同的数据拆分中,性能将始终较低。
绘制学习曲线,该曲线显示模型在训练集和测试集上的性能与训练样本数量的函数关系。具有高偏差的模型将具有高训练误差和高测试误差,而具有高方差的模型将具有低训练误差和高测试误差。
问题55.有哪些技术可以平衡模型中的偏差和方差?
一个。 有几种技术可用于平衡模型中的偏差和方差,包括:
通过添加更多参数或特征来增加模型复杂性:这可以帮助模型捕获数据中更复杂的模式并减少偏差,但如果模型变得过于复杂,它也会增加方差。
通过删除参数或特征来降低模型复杂性:这可以帮助模型避免过度拟合并减少方差,但如果模型变得过于简单,也会增加偏差。
使用正则化技术:这些技术通过惩罚大权重来限制模型复杂性,这可以帮助模型避免过度拟合并减少方差。正则化技术的一些示例包括 L1 正则化、L2 正则化和弹性网络正则化。
将数据拆分为训练集和测试集:这使我们能够评估模型的泛化能力并调整模型复杂度,以实现偏差和方差之间的良好平衡。
使用交叉验证:这是一种用于评估模型在不同数据拆分上的性能并对结果进行平均以获得更准确估计的技术
模型的泛化能力。
问题56.如何为分类问题选择合适的评估指标,以及如何解释评估结果?
一个。 有许多评估指标可用于分类问题,适当的指标取决于问题的具体特征和评估目标。一些常见的分类评估指标包括:
准确性:这是最常见的分类评估指标。它衡量模型做出的正确预测的百分比。
精度:该指标衡量模型做出的所有正预测中真正预测的比例。
召回:该指标衡量测试集中所有实际阳性案例中真阳性预测的比例。
F1 分数:这是精确度和召回率的谐波平均值。当您想要平衡精确度和召回率时,这是一个很好的指标。
AUC-ROC:该指标衡量模型区分正类和负类的能力。它通常用于不平衡分类问题。
要解释评估结果,您应该考虑问题的具体特征和评估目标。例如,如果您尝试识别欺诈易,您可能对最大限度地提高精度更感兴趣,因为您希望最大限度地减少误报的数量。另一方面,如果你试图诊断一种疾病,你可能对最大限度地提高回忆率更感兴趣,因为你想尽量减少漏诊的数量。
问题57.K-means 和分层聚类有什么区别,何时使用什么?
一个。 K 均值和分层聚类是两种不同的数据聚类方法。这两种方法在不同情况下都很有用。
K-means 是一种基于质心的算法,或基于距离的算法,我们计算距离以将点分配给聚类。K-means 在计算时间方面非常快速和高效,但它可能无法找到全局最优值,因为它对质心种子使用随机初始化。
另一方面,分层聚类是一种基于密度的算法,不需要我们事先指定聚类的数量。它通过创建树状图(称为树状图)来构建集群层次结构。分层聚类有两种主要类型:聚集性聚类和分裂性聚类。聚集聚类从单个点作为单独的聚类开始,并将它们合并到更大的聚类中,而分裂聚类从一个聚类中的所有点开始,并将它们划分为较小的聚类。分层聚类是一种缓慢的算法,需要大量的计算资源,但它比 K 均值更准确。
那么,何时使用 K-means,何时使用分层聚类?这实际上取决于数据的大小和结构,以及可用的资源。如果您有一个大型数据集,并且想要快速对其进行聚类,那么 K-means 可能是一个不错的选择。如果您的数据集较小,或者想要更准确的聚类,则分层聚类可能是更好的选择。
问题58.如何处理逻辑回归模型中的不平衡类?
一个。 有几种方法可以处理逻辑回归模型中的不平衡类。一些方法包括:
对多数类进行欠采样:这涉及随机选择多数类样本的子集以用于训练模型。这有助于平衡类分布,但也可能会丢失有价值的信息。
对少数群体进行过采样:这涉及生成少数类的合成样本以添加到训练集中。一种生成合成样本的流行方法称为 SMOTE(合成少数过采样技术)。
调整班级权重:许多机器学习算法允许您调整每个类的权重。在逻辑回归中,可以通过将 class_weight 参数设置为“balanced”来执行此操作。这将自动对类进行与其频率成反比的加权,以便模型更多地关注少数类。
使用不同的评估指标:在不平衡分类任务中,使用对类不平衡敏感的评估指标(如精确度、召回率和 F1 分数)通常信息量更大。
使用不同的算法: 某些算法(如决策树和随机森林)对不平衡类更健壮,并且在不平衡数据集上可能表现更好。
问题59.什么时候不使用 PCA 进行降维?
一个。 在以下几种情况下,您可能不想使用主成分分析 (PCA) 进行降维:
当数据不可线性分离时:PCA 是一种线性技术,因此它可能无法有效地降低不可线性可分离数据的维度。
数据具有分类特征:PCA 旨在处理连续数值数据,可能无法有效地降低具有分类特征的数据的维度。
当数据具有大量缺失值时:PCA 对缺失值很敏感,可能不适用于具有大量缺失值的数据集。
目标是保留原始特征之间的关系:PCA 是一种在数据中查找模式并创建原始特征组合的新特征的技术。因此,如果目标是保留原始特征之间的关系,则它可能不是最佳选择。
当数据高度不平衡时:PCA 对类不平衡很敏感,在高度不平衡的数据集上可能不会产生良好的结果。
问题60.什么是梯度下降?
一个。 梯度下降是机器学习中使用的一种优化算法,用于查找最小化成本函数的模型参数(系数和偏差)值。它是一种一阶迭代优化算法,它遵循成本函数的负梯度收敛到全局最小值。
在梯度下降中,模型的参数使用随机值进行初始化,算法以与参数相关的成本函数梯度相反的方向迭代更新参数。更新的大小由学习率决定,学习率是一个超参数,用于控制算法收敛到全局最小值的速度。
随着算法更新参数,成本函数减小,模型性能提高
问题61.MinMaxScaler 和 StandardScaler 有什么区别?
一个。 MinMaxScaler 和 StandardScaler 都是用于转换数据集特征的工具,以便通过机器学习算法更好地对其进行建模。但是,它们以不同的方式工作。
MinMaxScaler 通过将数据集的特征转换为特定范围(通常介于 0 和 1 之间)来缩放数据集的特征。为此,它从该要素中的所有值中减去每个要素的最小值,然后将结果除以范围(即最小值和最大值之间的差值)。此转换由以下等式给出:
x_scaled = (x - x_min) / (x_max - x_min)
StandardScaler 通过将数据集的特征转换为零均值和单位方差来标准化数据集的特征。它通过从该特征中的所有值中减去每个特征的平均值,然后将结果除以标准差来实现此目的。此转换由以下等式给出:
x_scaled = (x - mean(x)) / std(x)
通常,StandardScaler 更适合于特征分布近似正态或高斯的数据集。MinMaxScaler 更适合分布偏斜或存在异常值的数据集。但是,在选择缩放方法之前,最好将数据可视化并了解特征的分布。
问题62.监督学习和无监督学习有什么区别?
一个。在监督学习中,您提供给算法的训练集包括所需的解决方案,称为标签。
例如 = 垃圾邮件过滤器(分类问题)
k-最近邻
线性回归
逻辑回归
支持向量机 (SVM)
决策树和随机森林
神经网络
在无监督学习中,训练数据是未标记的。
比方说,系统试图在没有老师的情况下学习。
聚类
K-均值
DBSCAN扫描
分层聚类分析 (HCA)
异常检测和新颖性检测
一类支持向量机
隔离林
可视化和降维
主成分分析 (PCA)
内核 PCA
局部线性嵌入 (LLE)
t-分布式随机邻域嵌入 (t-SNE)
问题63.超参数优化的常用方法有哪些?
一个。 有几种常用的超参数优化方法:
网格搜索:这涉及为每个超参数指定一组值,并使用所有可能的超参数值的组合对模型进行训练和评估。这在计算上可能很昂贵,因为组合的数量随着超参数的数量呈指数增长。
随机搜索:这涉及对超参数的随机组合进行采样,并为每个组合训练和评估模型。这与网格搜索相比,计算密集度较低,但在查找最佳超参数集方面可能不太有效。
问题64.如何确定验证集和测试集的大小?
一个。 可以通过以下方式验证测试集的大小:
数据集大小:通常,数据集越大,验证集和测试集就越大。这是因为有更多的数据可供使用,因此验证和测试集可以更好地代表整个数据集。
模型的复杂性:如果模型非常简单,则可能不需要那么多数据来验证和测试。另一方面,如果模型非常复杂,它可能需要更多的数据来确保它是健壮的,并且可以很好地泛化到看不见的数据。
不确定性程度:如果预计模型在任务上表现良好,则验证集和测试集可以更小。但是,如果模型的性能不确定或任务非常具有挑战性,则使用更大的验证和测试集可能会有所帮助,以便更准确地评估模型的性能。
可用资源: 验证集和测试集的大小也可能受到可用计算资源的限制。如果训练和评估模型需要很长时间,则使用非常大的验证和测试集可能不切实际。
问题65.如何评估模型在多类分类问题中的性能?
一个。 评估多类分类模型的一种方法是为每个类计算单独的评估指标,然后计算宏观或微观平均值。宏观平均值为所有类赋予相等的权重,而微观平均值为具有更多观测值的类赋予更多权重。此外,还可以使用一些用于多类分类问题的常用指标,例如混淆矩阵、精确度、召回率、F1 分数、准确率和 ROC-AUC。
问题66.统计学习和机器学习有什么区别?
答:统计学习和机器学习都是用于根据数据做出预测或决策的方法。但是,这两种方法之间存在一些关键差异:
统计学习侧重于根据数据的统计模型做出预测或决策。目标是了解数据中变量之间的关系,并根据这些关系进行预测。另一方面,机器学习专注于根据数据中的模式做出预测或决策,而不必试图理解变量之间的关系。
统计学习方法通常依赖于对数据分布的强假设,例如正态性或误差独立性。另一方面,机器学习方法通常对违反这些假设的行为更加鲁棒。
统计学习方法通常更具可解释性,因为统计模型可用于理解数据中变量之间的关系。另一方面,机器学习方法通常不太可解释,因为它们基于数据中的模式,而不是变量之间的显式关系。
例如,线性回归是一种统计学习方法,它假设预测变量和目标变量之间存在线性关系,并使用优化算法估计线性模型的系数。随机森林是一种机器学习方法,它构建决策树的集合,并根据单个树的预测平均值进行预测。
问题67.规范化数据如何有利于在数据科学中建立模型?
一个。 改进的模型性能:规范化数据可以提高某些机器学习模型的性能,尤其是那些对输入数据规模敏感的模型。例如,对数据进行归一化可以提高 K 最近邻和神经网络等算法的性能。
更简单的功能比较:对数据进行归一化可以更轻松地比较不同特征的重要性。如果不进行归一化,则具有大比例的要素可以主导模型,从而难以确定其他要素的相对重要性。
减少异常值的影响:规范化数据可以减少异常值对模型的影响,因为它们会与其他数据一起缩小。这可以提高模型的鲁棒性,并防止其受到极值的影响。
改进的可解释性:归一化数据可以更轻松地解释模型的结果,因为系数和特征重要性都在同一尺度上。
需要注意的是,归一化并不总是对所有模型都必要或有益的。有必要仔细评估数据和模型的具体特征和需求,以确定归一化是否合适。
中级 ML 面试问题
问题68.为什么在 f1 分数中计算谐波均值而不是均值?
一个。 F1 分数是一个结合了精确度和召回率的指标。精确度是真阳性结果数除以分类器预测的阳性结果总数,召回率是真阳性结果数除以基本真值中的阳性结果总数。精确率和召回率的谐波平均值用于计算 F1 分数,因为它比算术平均值更能容忍不平衡的类比例。
如果不使用谐波平均值,F1 分数会更高,因为它将基于精确度和召回率的算术平均值,这将使高精度的权重更大,而低召回率的权重更小。在 F1 分数中使用谐波平均值有助于平衡精确度和召回率,并对分类器的性能进行更准确的总体评估。
问题69.选择功能有哪些方法?
一个。 以下是选择功能的一些方法:
过滤方法:这些方法使用统计分数来选择最相关的要素。
例:
相关系数:选择与目标变量高度相关的要素。
卡方检验:选择与目标变量无关的特征。
包装器方法:这些方法使用学习算法来选择最佳特征。
例如
前向选择:从一组空的特征开始,一次添加一个特征,直到模型的性能达到最佳状态。
向后选择:从整套特征开始,一次删除一个特征,直到模型的性能达到最佳状态。
嵌入式方法:这些方法在训练模型时了解哪些特征最重要。
例:
套索回归:通过向损失函数添加惩罚项来正则化模型,该损失函数将不太重要的特征的系数缩小到零。
岭回归:通过向损失函数添加惩罚项来正则化模型,该损失函数将所有特征的系数缩小到零,但不将其设置为零。
功能重要性:我们还可以使用特征重要性参数,该参数为我们提供了模型考虑的最重要特征
问题70.bagging boosting difference有什么区别?
一个。 bagging 和 boosting 都是有助于提高模型性能的集成学习技术。
装袋是一种技术,在这种技术中,在我们拥有的数据集上训练不同的模型,然后考虑这些模型的预测平均值。对所有模型进行预测,然后对结果进行平均,其背后的直觉是做出更多样化和更准确的预测。
提升是一种技术,在这种技术中,不同的模型被训练,但它们是以顺序方式训练的。每个连续的模型都会纠正前一个模型所犯的错误。这使得模型很强大,从而将误差降至最低。
问题71.随机梯度提升和 XGboost 有什么区别?
一个。 XGBoost 是梯度提升的一种实现,专门设计为高效、灵活和便携。随机 XGBoost 是 XGBoost 的一个变体,它使用更随机的方法来构建决策树,这可以使生成的模型对过拟合更具鲁棒性。
XGBoost 和随机 XGBoost 都是构建机器学习模型的热门选择,可用于各种任务,包括分类、回归和排名。两者之间的主要区别在于 XGBoost 使用确定性树构造算法,而随机 XGBoost 使用随机树构造算法。
问题72.catboost 和 XGboost 有什么区别?
一个。 Catboost 和 XGboost 之间的区别:
Catboost 比 XGboost 更好地处理分类特征。在 catboost 中,分类特征不需要单热编码,从而节省了大量时间和内存。另一方面,XGboost 也可以处理分类特征,但它们需要先进行单热编码。
XGboost 需要手动处理数据,而 Catboost 则不需要。它们在构建决策树和进行预测的方式上存在一些差异。
与 XGboost 不同,Catboost 比 XGboost 更快,并构建对称(平衡)树。
问题73.线性分类器和非线性分类器有什么区别
一个。 线性分类器和非线性分类器之间的区别在于决策边界的性质。
在线性分类器中,决策边界是输入的线性函数。换句话说,边界是直线、平面或超平面。
例如:线性回归、逻辑回归、LDA
非线性分类器是指决策边界不是输入的线性函数的分类器。这意味着分类器不能由输入要素的线性函数表示。非线性分类器可以捕获输入特征和标签之间更复杂的关系,但它们也更容易出现过拟合,尤其是在它们具有大量参数的情况下。
例如:KNN、决策树、随机森林
问题74.什么是参数模型和非参数模型?
一个。 参数化模型是由固定数量的参数描述的模型。这些参数是使用最大似然估计程序或其他方法从数据中估计的,它们用于对响应变量进行预测。
另一方面,非参数模型是不对因变量和自变量之间的关系形式做出任何假设的模型。它们通常比参数化模型更灵活,可以拟合更广泛的数据形状,但它们的可解释参数也较少,并且更难解释。
问题75.我们如何使用交叉验证来克服过拟合?
一个。 交叉验证技术可用于识别模型是欠拟合还是过拟合,但不能用于克服其中任何一个问题。我们只能比较模型在两组不同数据上的性能,并找出数据是过拟合还是欠拟合,还是泛化。
问题76.如何将数值变量转换为分类变量,什么时候有用?
一个。 有几种方法可以将数值变量转换为分类变量。一种常见的方法是使用分箱,这涉及将数值变量划分为一组分箱或区间,并将每个分箱视为一个单独的类别。
将数值变量转换为分类变量的另一种方法是使用一种称为“离散化”的技术,该技术涉及将数值变量的范围划分为一组区间,并将每个区间视为一个单独的类别。如果要创建更细粒度的数据表示形式,这可能很有用。
当数值变量具有有限数量的值并且您希望将这些值分组到类别中时,将数值变量转换为分类变量可能很有用。如果您想突出显示数据中的潜在模式或趋势,而不仅仅是原始数字,它也很有用。
问题77.什么是广义线性模型?
一个。 广义线性模型 (GLM) 是一系列模型,允许我们指定响应变量与一个或多个预测变量之间的关系,同时与传统线性模型相比,这种关系的形状具有更大的灵活性。在传统的线性模型中,假设响应变量是正态分布的,并且假设响应变量和预测变量之间的关系是线性的。GLM 放宽了这些假设,允许响应变量根据各种不同的分布进行分布,并允许响应变量和预测变量之间的非线性关系。GLM 的一些常见示例包括逻辑回归(用于二元分类任务)、泊松回归(用于计数数据)和指数回归(用于对事件发生时间数据进行建模)。
问题78.ridge 和 lasso 回归有什么区别?它们在模型选择和正则化方法方面有何不同?
一个。 岭回归和套索回归都是通过向目标函数添加正则化项来防止线性模型中过拟合的技术。它们在定义正则化项的方式上有所不同。
在岭回归中,正则化项定义为平方系数的总和(也称为 L2 惩罚)。这会产生一个平滑的优化表面,这可以帮助模型更好地泛化到看不见的数据。岭回归具有将系数推向零的效果,但它不会将任何系数精确设置为零。这意味着所有特征都保留在模型中,但它们对输出的影响会减少。
另一方面,套索回归将正则化项定义为系数绝对值的总和(也称为 L1 惩罚)。这具有将某些系数精确地驱动到零的效果,从而有效地选择要在模型中使用的特征子集。这对于特征选择非常有用,因为它允许模型自动选择最重要的特征。但是,套索回归的优化表面并不平滑,这可能会使模型的训练更加困难。
总之,岭回归将所有要素的系数缩小到零,而套索回归将某些系数精确设置为零。这两种技术都可用于防止过拟合,但它们在处理模型选择和正则化的方式上有所不同。
问题79.优化算法的步长(或学习率)如何影响逻辑回归中优化过程的收敛性?
一个。 步长或学习率决定了优化算法在接近目标函数的最小值时所采取的步骤的大小。在逻辑回归中,目标函数是模型的负对数似然,我们希望将其最小化以找到最佳系数。
如果步长过大,优化算法可能会超过最小值并围绕最小值振荡,甚至可能发散而不是收敛。另一方面,如果步长太小,优化算法的进度会非常缓慢,可能需要很长时间才能收敛。
因此,选择合适的步长以确保优化过程的收敛性非常重要。一般来说,较大的步长可以导致更快的收敛,但也会增加超过最小值的风险。步长越小越安全,但速度也会越慢。
有几种方法可以选择合适的步长。一种常见的方法是对所有迭代使用固定的步长。另一种方法是使用递减的步长,该步长开始时很大,并随着时间的推移而减小。这可以帮助优化算法在开始时取得更快的进展,然后在接近最小值时微调系数。
问题80.什么是决策树中的过拟合,如何缓解它?
一个。 当模型过于复杂且分支过多时,就会发生决策树中的过拟合,从而导致对新的、看不见的数据的泛化能力不佳。这是因为模型已经很好地“学习”了训练数据中的模式,并且无法将这些模式推广到新的、看不见的数据中。
有几种方法可以缓解决策树中的过拟合:
修剪:这涉及从树中删除不会为模型预测增加重要价值的分支。修剪有助于降低模型的复杂度,提高模型的泛化能力。
限制树深度:通过限制树的深度,可以防止树变得过于复杂和过度拟合训练数据。
使用合奏:随机森林和梯度提升等集成方法可以通过聚合多个决策树的预测来帮助减少过拟合。
使用交叉验证:通过评估模型在多个训练测试拆分上的性能,可以更好地估计模型的泛化性能,并降低过度拟合的风险。
问题81.为什么 SVM 被称为大边距分类器?
一个。 SVM,即支持向量机,被称为大边际分类器,因为它试图找到一个超平面,在特征空间中的正类和负类之间具有最大可能的边距或距离。边距是超平面与最近数据点之间的距离,用于定义模型的决策边界。
通过最大化裕量,SVM 分类器能够更好地泛化到新的、看不见的数据,并且不易出现过拟合。边际越大,决策边界周围的不确定性越低,模型的预测就越有信心。
因此,SVM 算法的目标是找到一个具有最大可能边距的超平面,这就是为什么它被称为大边际分类器的原因。
问题82.什么是铰链损耗?
一个。 铰链损失是支持向量机 (SVM) 和其他线性分类模型中使用的损失函数。它被定义为预测不正确时发生的损失。
单个示例的铰链损耗定义为:
损失 = max(0, 1 – y * f(x))
其中 y 是真实标签(-1 或 1),f(x) 是模型的预测输出。预测输出是输入特征和模型权重之间的内积,加上偏差项。
铰链损失用于 SVM,因为它是一个凸函数,可以惩罚不自信和不正确的预测。当预测标签正确时,铰链损失等于零,并且随着对错误标签的置信度增加而增加。这鼓励模型对其预测充满信心,但也要谨慎行事,不要做出与真实标签相差太远的预测。
高级 ML 面试问题
问题83.如果我们增加 KNN 中的邻居数量会发生什么?
一个。 如果在 KNN 中将邻居的数量增加到一个非常大的值,分类器将变得越来越保守,决策边界将变得越来越平滑。这有助于减少过拟合,但也可能导致分类器对训练数据中的细微模式不太敏感。k 值越大,模型的复杂度越低,越不容易过拟合,但更容易欠拟合。
因此,为了避免过度拟合或欠拟合,重要的是要选择一个适当的 k 值,在复杂性和简单性之间取得平衡。通常最好尝试一个相邻点数的值范围,看看哪一个最适合特定数据集。
问题84.如果最大深度增加,决策树中会发生什么?
A. 增加决策树的最大深度将增加模型的复杂性,使其更容易出现过拟合。如果增加决策树的最大深度,则该树将能够做出更复杂和细微的决策,这可以提高模型很好地拟合训练数据的能力。但是,如果树太深,它可能会对训练数据中的特定模式过于敏感,并且不能很好地泛化到看不见的数据。
问题85.额外的树和随机森林有什么区别?
一个。 这两种算法之间的主要区别在于决策树的构造方式。
在随机森林中,决策树是使用训练数据的自举样本和特征的随机子集构建的。这导致每棵树都使用一组略有不同的数据和特征进行训练,从而导致树的多样性更大,方差更低。
在额外树分类器中,决策树的构造方式类似,但算法不是在每次拆分时选择特征的随机子集,而是在特征的随机子集中选择最佳拆分。这会导致更多的随机拆分和更高的随机性,从而导致更低的偏差和更高的方差。
问题86.何时使用单热编码和标签编码?
一个。 单热编码和标签编码是两种不同的技术,可用于将分类变量编码为数值。它们通常在机器学习模型中用作将模型拟合到数据之前的预处理步骤。
当您的分类变量没有任何序数关系时,通常使用单热编码,即类别没有自然顺序或排名。One-hot 编码为每个类别创建新的二进制列,值为 1 表示存在类别,值为 0 表示不存在类别。当您希望保留每个类别的唯一性并防止模型假定类别之间的任何顺序关系时,这可能很有用。
另一方面,当您的分类变量确实具有序数关系时,通常使用标签编码,即类别具有自然顺序或排名。标签编码为每个类别分配一个唯一的整数值,整数值通常由类别的自然顺序确定。当您想要保留类别之间的序号关系并允许模型使用此信息时,这可能很有用。
通常,最好对名义数据(即没有固有顺序的数据)使用单热编码,对有序数据(即具有固有顺序的数据)使用标签编码。但是,单热编码和标签编码之间的选择也可能取决于模型的特定要求和数据集的特征。
问题87.对标称数据使用标签编码有什么问题?
一个。 标签编码是一种将分类变量编码为数值的方法,在某些情况下可能会有所帮助。但是,在对标称数据使用标签编码时,应注意一些潜在问题。
标签编码的一个问题是,它可以在不存在的类别之间创建序数关系
如果您有一个包含三个类别的分类变量:“红色”、“绿色”和“蓝色”,并且应用标签编码将这些类别映射到数值 0、1 和 2,则模型可能会假定类别“绿色”在某种程度上“介于”类别“红色”和“蓝色”之间。如果您的模型依赖于类别彼此独立的假设,则这可能是一个问题。
标签编码的另一个问题是,如果数据集不平衡,可能会导致意外结果。例如,如果一个类别比其他类别更常见,则将为它分配一个低得多的数值,这可能导致模型赋予它的重要性低于其应有的重要性。
问题88.什么时候单热编码会成为问题?
一个。 在某些情况下,单热编码可能是一个问题,因为它可以在数据集中创建大量新列,这可能会使数据更难处理,并可能导致过度拟合。
单热编码为分类变量中的每个类别创建一个新的二进制列。如果类别变量具有许多类别,则可能会导致大量新列。
单热编码的另一个问题是,它可能导致过拟合,尤其是在数据集较小且类别数量较多的情况下。为每个类别创建许多新列时,可以有效地增加数据集中的要素数量。这可能会导致过拟合,因为模型可能能够记住训练数据,但不能很好地泛化到新数据。
最后,如果将来需要向数据集添加新类别,单热编码也可能是一个问题。如果您已经对现有类别进行了单热编码,则需要小心确保以不会造成混淆或导致意外结果的方式添加新类别。
问题89.当一列中有数百个分类值时,什么是合适的编码技术?
一个。 当我们在一个分类变量中有数百个列时,可以使用一些技术。
频率编码:这涉及将每个类别替换为数据集中该类别的频率。如果类别具有基于其频率的自然序数关系,则可以很好地工作。
目标编码:这涉及将每个类别替换为该类别的目标变量的平均值。如果类别与目标变量有明确的关系,这可能是有效的。
问题90.随机森林中随机性的来源是什么?
一个。 随机森林是一种集成学习方法,涉及在数据的不同子集上训练多个决策树,并对单个树的预测进行平均以做出最终预测。在训练随机森林的过程中,有几种随机性来源:
引导示例: 在训练每个决策树时,该算法通过对原始训练集进行采样和替换来创建数据的引导样本。这意味着某些数据点将多次包含在样本中,而其他数据点将根本不包含在样本中。这会在不同树的训练集之间产生差异。
随机特征选择: 在训练每个决策树时,该算法会选择在每次拆分时要考虑的特征的随机子集。这意味着不同的树将考虑不同的特征集,从而导致学习树的变化。
随机阈值选择:在训练每个决策树时,该算法为每个特征选择一个随机阈值,以确定最佳分割。这意味着不同的树将在不同的阈值上分裂,从而导致学习树的变异。
通过引入这些随机性源,与单个决策树相比,随机森林能够减少过度拟合并提高泛化性能。
问题91.如何决定在树的每个节点上拆分哪个特征?
一个。 训练决策树时,算法必须在决策树的每个节点上选择要拆分的特征。有几种策略可用于决定要拆分哪个功能,包括:
贪婪搜索:该算法在每一步中选择最大化分裂标准(例如信息增益或基尼杂质)的特征。
随机搜索:该算法在每个步骤中随机选择要拆分的特征。
穷举搜索:该算法会考虑所有可能的拆分,并选择使拆分条件最大化的拆分。
正向搜索:该算法从一棵空树开始,逐个添加拆分,选择在每一步最大化拆分条件的拆分。
向后搜索:该算法从一棵完全长大的树开始,一个接一个地修剪修剪,选择要删除的拆分,导致拆分条件的最小降低。
问题92.C 在 SVM 中的意义是什么?
一个。在支持向量机 (SVM) 算法中,参数 C 是一个超参数,用于控制最大化裕量和最小化误分类误差之间的权衡。
直观地,C 确定对训练示例进行错误分类的惩罚。C 值越小意味着错误分类的惩罚越大,因此模型将尝试正确分类所有训练样本(即使这意味着余量较小)。另一方面,C 值越大意味着错误分类的惩罚越小,因此模型将尝试最大化边际,即使它会导致某些训练样本的错误分类。
在实践中,您可以将 C 视为控制模型的灵活性。较小的 C 值将导致更严格的模型,可能更容易欠拟合,而较大的 C 值将导致更灵活的模型,可能更容易出现过拟合。
因此,应使用交叉验证仔细选择 C 值,以平衡偏差-方差权衡,并在看不见的数据上实现良好的泛化性能。
问题93.c 和 gamma 如何影响 SVM 中的过拟合?
一个。 在支持向量机 (SVM) 中,正则化参数 C 和核参数 gamma 用于控制过拟合。
C 是对错误分类的惩罚。C 值越小,意味着错误分类的惩罚越大,这意味着模型将更加保守,并尽量避免错误分类。这可能导致模型不太容易出现过拟合,但也可能导致模型过于保守且泛化性能较差。
Gamma 是控制模型复杂度的参数。Gamma 值越小意味着模型越复杂,这可能导致过拟合。伽玛值越大意味着模型越简单,这有助于防止过度拟合,但也可能导致模型过于简单,无法准确捕获数据中的基础关系。
通常,找到 C 和 gamma 的最佳值是在偏差和方差之间进行权衡,并且通常需要尝试不同的值并评估模型在验证集上的性能,以确定这些参数的最佳值。
问题94.您如何选择在 Boosting 或 Bagging 合奏中使用的模型数量?
一个。 在集成中使用的模型数量通常由性能和计算成本之间的权衡决定。作为一般的经验法则,增加模型数量将提高集成的性能,但代价是增加计算成本。
在实践中,模型的数量是通过交叉验证确定的,交叉验证用于根据所选的评估指标确定最佳模型数量。
问题95.在哪些情况下,Boosting 和 Bagging 比单一模型更受欢迎?
一个。 在单个模型具有高方差或高偏差且目标是提高模型整体性能的情况下,通常首选提升和装袋。装袋通常用于减少模型的方差,而提升用于减少偏差并改善模型的泛化误差。当使用对训练数据敏感且过拟合可能性很高的模型时,这两种方法也很有用。
问题96.您能解释一下 ROC 曲线和 AUC 分数,以及它们如何用于评估模型的性能吗?
一个。 ROC(Receiver Operating Characteristic)曲线是二元分类模型性能的图形表示。它绘制了不同阈值下的真阳性率 (TPR) 与假阳性率 (FPR)。AUC(曲线下面积)是ROC曲线下面积。它给出一个表示模型整体性能的数字。AUC 很有用,因为它考虑了所有可能的阈值,而不仅仅是 ROC 曲线上的一个点。
问题97.当您想自己调整精度和召回时,您如何处理在二元分类问题中设置阈值?
一个。 在二元分类问题中设置阈值时,必须考虑精确度和召回率之间的权衡。精确度是所有正预测中真阳性预测的比例,而召回率是所有实际阳性案例中真阳性预测的比例。
调整精度和召回率的一种方法是首先训练模型,然后在验证集上评估其性能。验证集应具有与模型上的测试集部署相似的正负事例分布。
接下来,您可以使用混淆矩阵来可视化模型的性能,并确定用于进行预测的当前阈值。混淆矩阵显示模型所做的真阳性、假阳性、真阴性和假阴性预测的数量。
从那里,您可以调整阈值以更改精确度和召回率之间的平衡。例如,增加阈值将提高精确度,但会减少召回率。另一方面,降低阈值将增加召回率并降低精度。
考虑具体用例以及误报和误报的成本也很重要。在某些应用中,例如医疗诊断,即使这意味着接受较低的精度,高召回率(即不错过任何实际的阳性病例)可能更为重要。在其他情况下,例如欺诈检测,即使这意味着接受较低的召回率,高精度(即不将任何合法交易标记为欺诈易)可能更为重要。
问题98.LDA(线性判别分析)和PCA(主成分分析)有什么区别?
答:LDA(线性判别分析)和PCA(主成分分析)都是线性变换技术,用于降低数据集的维数。但是,它们用于不同的目的并以不同的方式工作。
PCA 是一种无监督技术,这意味着它用于在不参考任何已知标签的情况下查找数据中的模式。PCA 的目标是找到数据中方差量最大的方向(主成分)。选择这些方向时,它们彼此相互正交(垂直),第一个方向表示最大方差,第二个方向表示第二大方差,依此类推。找到主成分后,可以将数据投影到由这些成分定义的低维子空间上,从而产生新的低维数据表示。
另一方面,LDA 是一种监督技术,用于查找低维子空间,以最大化不同类别数据之间的分离。LDA 通常用作分类问题的降维技术,例如在人脸识别、虹膜识别和指纹识别中。LDA 的目标是找到尽可能分隔类的数据投影。
问题99.朴素贝叶斯算法与其他监督学习算法相比如何?
一个。 朴素贝叶斯是一种简单而快速的算法,适用于高维数据和小型训练集。它在具有分类变量和缺失数据的数据集上也表现良好,这在许多现实世界的问题中都很常见。它适用于文本分类、垃圾邮件过滤和情绪分析。但是,由于特征之间具有独立性的假设,对于特征之间相关性高的问题,它的表现并不好。它还经常无法捕获特征之间的交互,这可能导致某些数据集的性能不佳。因此,它通常被用作基线或起点,然后可以使用其他算法(如 SVM 和随机森林)来提高性能。
问题100.您能解释一下“内核技巧”的概念及其在支持向量机 (SVM) 中的应用吗?
一个。内核技巧是一种用于将 SVM 中的输入数据转换为更高维特征空间的技术,在那里它变得线性可分离。核技巧的工作原理是用核函数替换输入空间中的标准内积,核函数计算更高维空间中的内积,而不必实际计算该空间中数据的坐标。这允许 SVM 通过将非线性可分离数据映射到更高维空间来处理非线性可分离数据,从而实现线性可分离。SVM 中使用的常见核函数包括多项式核、径向基函数 (RBF) 核和 S 形核。
三、结论
在本文中,我们介绍了各种数据科学面试问题,涵盖了 KNN、线性回归、朴素贝叶斯、随机森林等主题。
数据科学家的工作并不容易,但很有意义,而且有很多空缺职位。这些数据科学面试问题可以让你离找到理想的工作更近一步。因此,请为严格的面试问题做好准备,并及时了解数据科学的基础知识。如果您想提高您的数据科学技能,请考虑注册我们的黑带计划。