大数据面试2小时前冲刺必备:大厂高频大数据面经【下】(数据分析挖掘篇-多张原理图)

数据仓库的概念及与数据库的区别是什么?(shein、大厂八股文、soul)

数据仓库(Data Warehouse)是为支持决策分析而设计的面向主题(Subject-Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time-Variant)的数据集合。其主要目的是通过对大量历史数据的整理、整合、清洗和建模,为业务管理层、数据分析师等提供准确、全面、及时的决策支持。

与传统数据库系统相比,数据仓库与数据库在多个方面存在本质差异:

主要用途

面向事务处理,如增删改查

面向分析处理,如报表、统计、趋势分析等

数据特征

当前数据,实时性强

历史数据,为分析提供时间维度的对比

数据模型

第三范式为主,追求数据规范性

维度建模为主,追求分析效率

操作类型

高频小事务操作

大量读操作,少量写操作

数据一致性要求

高一致性、事务性强

可以容忍一定延迟,最终一致性即可

性能优化方向

优化写入与并发性能

优化查询性能,如分区、索引、预聚合等

用户对象

开发人员、系统操作人员

数据分析师、管理层、BI人员

因此,数据仓库不是传统数据库的简单集合,而是以分析和决策为导向的复杂数据系统,需配合ETL、建模、分层架构和BI工具共同工作。

数据仓库为什么要分层?各层的作用是什么?(水滴、脉脉、知乎)

数据仓库分层是一种架构设计思想,核心目的是实现数据的分工协作、降低耦合、增强数据质量控制与演化能力。通过将数据在不同阶段进行结构化沉淀,可以有效提升数据治理能力、数据复用能力和计算效率。

常见分层理由与对应作用如下:

  • 降低系统复杂度:通过分层,开发人员可以只关注本层的逻辑处理,避免多个业务逻辑交织,提高可维护性。
  • 增强数据质量保障:每一层都有独立的校验机制,能及时发现上游数据异常并隔离处理,增强鲁棒性。
  • 支持数据复用与共享:上游公共层输出的中间结果可供多个下游消费,避免重复开发与计算浪费。
  • 便于数据血缘追踪:通过层级命名和表管理体系,便于追溯数据来源和计算路径,提升治理能力。
  • 满足不同需求粒度:不同角色(开发、分析、业务)对数据的抽象层次不同,分层架构有助于针对性服务。

分层不是为了复杂化系统,而是为了解耦、治理、复用、优化等目标服务,是现代数据仓库工程不可缺失的一部分。

数据仓库分层通常分为哪几层?(大厂八股文、科大讯飞)

主流数据仓库分层模型可以因企业规模和项目成熟度略有不同,但核心分层体系如下:

分层名称

别名

主要内容与作用

ODS层

操作数据层

原始数据的汇聚区,主要用于保留源系统数据,支持审计与数据恢复

DWD层

明细数据层(Data Warehouse Detail)

对ODS数据做清洗、格式统一、主键对齐后的标准明细层

DWS层

汇总数据层(Data Warehouse Summary)

以主题为中心的宽表或预聚合表,提升查询效率,支持多维分析

ADS层

应用数据层

面向具体应用或报表的指标层,粒度一致,表结构稳定,用户直接使用

DIM层 / DIC层

维度 / 字典层

存放各类维度标准信息,如机构、用户、产品维度等,供DWD/DWS关联

部分企业还会细化包括DM(数据集市)层、TMP临时层、TAG标签层等,用以满足特定数据策略、标签管理等场景需求。

这种多层架构是数据仓库可演化、可维护、可复用的基础,也是数据治理体系重要的组成部分。

维度建模的概念及主要解决什么问题?(微众银行、大厂八股文)

维度建模(Dimensional Modeling)是面向分析型系统的数据建模方法,核心思想是围绕业务过程(Fact)构建与其相关的多个维度(Dimension),以星型或雪花型结构来组织数据,从而提高查询性能和用户理解力。

维度建模主要解决以下问题:

  • 查询性能问题:维度建模结构清晰,预聚合数据、多维索引等技术可以显著提升OLAP查询效率。
  • 用户理解困难问题:相较于高度范式化的3NF模型,维度建模贴近业务语言,表结构简洁,便于业务人员理解。
  • 指标复用问题:通过统一的事实表和维度表,可以实现标准化指标体系,避免同一指标多处定义、口径不一致。
  • 数据一致性问题:维度表结构稳定,主键清晰,有助于实现数据一致性控制与血缘追踪。

维度建模强调“以终为始”,关注数据消费端的使用方式,适合在BI系统、数据中台、数据仓库中作为核心建模手段。它是构建主题模型(如客户分析、销售分析等)的基础,能够支撑数据可视化、数据服务、埋点分析等复杂查询需求。

星型模型和雪花模型的区别及应用场景是什么?(米哈游、大厂八股文)

星型模型(Star Schema)和雪花模型(Snowflake Schema)是维度建模中最常见的两种建模方式,主要区别体现在维度表的结构设计与规范化程度上:

特征

星型模型

雪花模型

维度表结构

非规范化,字段较多

规范化,拆分为多个子表

查询性能

较高,连接少

稍低,连接多

建模难度

简单,业务易理解

较复杂,依赖更强的数据规范性

存储空间

较大,数据冗余多

节省空间,冗余较少

使用场景

查询效率优先、指标计算频繁的业务分析场景

对数据一致性要求高的多层级维度场景

星型模型适用于报表分析、仪表盘展示、用户画像等对响应速度要求高的场景;雪花模型适合层级复杂、需要统一维度标准管理的系统,如跨系统统一客户、渠道、产品等。

在实践中,许多企业会使用混合模型:对主干维度采用星型结构保证性能,对部分子维度采用雪花模型以提高一致性和复用性。

维度表和事实表的区别是什么?(微众银行)

在数据仓库的设计中,维度表和事实表是两个核心的概念,它们具有不同的作用和功能。

  • 维度表:维度表是用于描述事实表中度量数据的属性信息表。它通常包含的是描述性的、分类的、离散的字段,比如时间、地域、产品等。维度表的主要作用是为事实表中的数据提供语义上的补充,使得数据更加易于理解和分析。维度表的字段通常是低度变化的,例如,产品名称、客户ID、时间日期等。每个维度表中都包含一个唯一的主键,该主键通常会在事实表中作为外键出现,用于与事实表进行关联。
  • 事实表:事实表是存储实际度量数据的表,它通常包含数值型字段,例如销售额、利润、数量等。事实表主要存储的是可以用来衡量业务表现的数据,它包含了大量的记录,用于记录具体的事件或交易。事实表中的数据通常与时间、客户、产品等维度相关联,因此事实表中的每条记录通常都与维度表中的一个或多个维度通过外键进行连接。每个事实表通常会有一个度量字段,代表需要分析的量(如销售额、订单数量等)。

区别总结

  1. 内容性质:维度表包含描述性的信息,事实表包含度量数据。
  2. 主键和外键:维度表一般有唯一的主键,事实表通过外键与维度表关联。
  3. 记录数量:维度表记录数量较少,事实表记录通常较多。
  4. 数据类型:维度表中的数据多为分类数据(如时间、地点、产品类别等),而事实表多为数值型数据(如销售额、订单数量等)。

事实表的类型有哪些?单事务和多事务事实表的区别?(微众银行、阅文集团)

事实表根据数据的性质可以分为多种类型。常见的类型包括:

  1. 事务型事实表(Transaction Fact Table):事务型事实表存储的是单个事务的度量数据,每条记录表示一次具体的业务操作或交易。例如,一次客户购买行为的记录。它通常包含详细的事务信息,如订单编号、时间戳、客户ID、产品ID等。事务型事实表的记录量通常较大。
  2. 周期型事实表(Snapshot Fact Table):周期型事实表存储的是某一时间点的数据快照。它通常表示某一特定时刻的业务状态。例如,每个月的库存量、每个月的总销售额等。周期型事实表的记录数量相对较少,通常每个时间周期只有一条记录。
  3. 累积型事实表(Cumulative Fact Table):累积型事实表存储的是一个时间段内的累计数据。它用于展示某个时间段内累计的业务数据,例如,一年内累计的销售额或利润等。累积型事实表常常用于汇总分析。

单事务和多事务事实表的区别:

  • 单事务事实表:每条记录代表一个单一的业务事务或事件,如一次客户的购买行为。每条记录通常有明确的时间戳,表示事件发生的时间。单事务事实表更注重记录单一事务的详细信息,数据量相对较大。
  • 多事务事实表:每条记录可以代表多个事务的汇总数据。例如,一个月内某个客户的所有购买行为的汇总。它通常包含汇总字段,而不是逐个事务的详细记录。多事务事实表的数据量较少,但每条记录通常包含多个事务的数据聚合结果。

增量表、全量表、拉链表的区别是什么?(爱奇艺大数据面经)

在数据仓库设计中,增量表、全量表和拉链表是常见的表类型,它们的主要区别在于数据的更新和加载方式。

  • 增量表(Incremental Table):增量表仅存储自上次更新以来新增的数据或变更的数据。它与全量表不同,增量表的更新过程是基于“增量”的,只加载新增或更新的数据,而不重复加载整个数据集。增量表的优点是加载速度较快,通常用于处理大规模数据集。
  • 全量表(Full Table):全量表存储整个数据集,每次数据更新时,整个数据集都会重新加载到表中。全量表的优点是数据始终保持最新状态,但缺点是更新效率较低,尤其是当数据量很大时。
  • 拉链表(SCD Type 2 Table):拉链表用于跟踪历史数据变化,特别是在数据仓库中实现**慢变维(SCD)**的需求。每当数据发生变化时,拉链表会保留旧记录,并为新记录创建新的记录,通常会加入时间戳和标记字段(如有效开始时间、结束时间等)。拉链表可以帮助保留数据的历史版本,特别适用于需要跟踪数据变化历史的业务场景。

一致性维度、一致性事实、总线矩阵的概念是什么?(微众银行、阅文集团)

  • 一致性维度(Conformed Dimension):一致性维度是指在多个数据仓库或多个主题域中共享的维度。它确保了在不同的事实表和维度表之间,维度的数据结构和内容是统一的,避免了不同主题域间数据的混乱和不一致。例如,时间维度通常是所有事实表中共享的一致性维度。
  • 一致性事实(Conformed Fact):一致性事实是指在多个事实表中共享的度量数据。这些度量数据在不同的事实表中具有相同的意义和结构,例如,销售额或利润在不同的业务主题中都表示同样的概念。通过使用一致性事实,可以实现跨主题域的统一分析。
  • 总线矩阵(Bus Matrix):总线矩阵是一种用于表示数据仓库中各个维度和事实表之间关系的工具,它帮助确保数据仓库的设计和实施是一致的。总线矩阵通常展示了哪些维度可以与哪些事实表结合使用,从而指导数据仓库的开发工作。通过总线矩阵,可以确保所有维度和事实表的一致性和可重用性。

从 ODS 到 DW 的 ETL 过程做了哪些工作?(微众银行)

从操作数据存储(ODS)到数据仓库(DW)的ETL(Extract, Transform, Load)过程是将原始业务数据转化为结构化的数据仓库数据的关键步骤。ETL过程的主要工作包括:

  • 提取(Extract):从源系统或ODS中提取数据。这个过程通常涉及从多个源(如关系数据库、日志系统、外部API等)中提取数据,将其加载到临时存储区域进行后续处理。
  • 转换(Transform):对提取的数据进行清洗、格式化和转换,确保数据符合数据仓库的结构要求。这包括去除重复数据、填补缺失值、数据标准化、数据类型转换、业务逻辑处理等步骤。转换过程中,还会进行数据整合和维度建模,以确保数据能够支持多维分析。
  • 加载(Load):将转换后的数据加载到数据仓库的目标表中。加载过程可以是全量加载,也可以是增量加载,取决于业务需求。数据加载后的最终步骤是确保数据的质量和一致性,通常会进行数据验证和校验,确保数据的准确性和完整性。

ETL过程是将ODS中的原始数据转化为可以支持多维分析和决策的数据仓库数据的关键步骤。

如何保证数据仓库的数据质量?有哪些指标?(拼多多大数据面经)

在数据仓库的设计与建设过程中,数据质量管理是至关重要的一环。数据质量不仅关乎数据的准确性,还直接影响到数据分析、报表生成、决策支持等环节的效果。为了保证数据仓库的数据质量,通常需要从以下几个方面进行控制和优化:

  1. 数据准确性:数据仓库中的数据必须与源数据保持一致。为了保证准确性,常常需要进行数据验证与校验,确保数据在 ETL 过程中没有发生丢失、重复或错误转换。例如,数据清洗时会验证数据值的格式是否符合要求,数据之间的关联是否正确。
  2. 数据完整性:数据完整性指的是数据中是否包含所有必需的信息,并且没有丢失关键数据。数据仓库的设计中,通常会通过设置合适的约束条件(如主键、外键等)来保证数据的完整性。此外,在 ETL 过程中,任何缺失数据都会被标记和处理,确保最终数据仓库中不出现不完整的数据。
  3. 数据一致性:数据一致性保证的是数据在多个数据源之间能够保持同步,确保数据在更新和修改时能够遵循统一的标准。例如,两个不同的数据源中的相同字段必须具有相同的取值范围和含义,避免因数据异构导致分析结果的误差。
  4. 数据时效性:数据仓库中的数据需要及时更新,以保持数据的时效性。这通常意味着数据仓库需要有实时或近实时的数据流入机制。为了确保时效性,数据仓库通常与源系统保持连接,定期(如每小时、每日等)拉取最新的数据。
  5. 数据可审计性:数据仓库应具备良好的可审计性,这意味着能够追踪到数据的来源、变更和使用情况。在数据质量控制中,通常会通过日志记录每个数据的变更历史,确保在数据质量问题出现时能够追溯问题根源。

数据质量的关键指标通常包括:

  • 准确性(Accuracy):数据与真实世界的对应程度。
  • 完整性(Completeness):数据是否缺失,是否有未填充的空值。
  • 一致性(Consistency):不同数据源中的数据是否匹配和协调。
  • 时效性(Timeliness):数据是否是最新的,是否及时更新。
  • 唯一性(Uniqueness):数据是否存在重复值。
  • 合理性(Reasonableness):数据是否符合业务逻辑和统计常识。

维度建模中数据域如何划分?(脉脉)

在数据仓库的维度建模中,数据域(Data Domain)是指某一维度的值范围或取值范围,它是维度建模的核心内容之一。通过划分数据域,可以确保数据的结构合理性,避免数据混乱或不一致。数据域的划分通常遵循以下几个原则:

  1. 业务逻辑一致性:数据域划分应该基于业务逻辑,确保每个维度的数据值都能明确对应业务领域中的特定内容。例如,在销售数据仓库中,客户维度的“客户类型”字段可以划分为“个人客户”和“企业客户”两类,确保数据能准确描述客户的类型。
  2. 数据值的唯一性:每个数据域应当具备唯一性,避免重复数据的出现。在划分数据域时,应避免设计过于细化的维度值区间,以减少不必要的维度细化,同时确保数据值的可用性。
  3. 可扩展性:数据域的设计需要考虑到未来数据量的扩展和业务变化。例如,在商品维度中,设计商品的“分类”数据域时,应该保证能够容纳未来可能新增的分类项。
  4. 层级化设计:在数据仓库中,维度常常具有层级结构(如“国家-省-市”)。在划分数据域时,应该遵循层级关系,确保数据能够反映出维度的层次结构。例如,日期维度中的“年”、“季度”、“月份”数据域,应当严格按照时间层级进行划分。
  5. 数据域的规范化与标准化:确保维度中每个数据值具有统一的标准。例如,在“城市”维度中,所有城市名称的格式应该保持一致,可以统一使用“城市名+地区”的方式。

什么是缓慢变化维?如何处理?(汇顶科技面经)

缓慢变化维(Slowly Changing Dimension,SCD)是指在数据仓库中,维度数据的变化较为缓慢,可能在很长时间内只发生几次变化。例如,客户的地址、员工的职位等,虽然这些信息会发生变化,但变化的频率较低。处理缓慢变化维的关键在于如何有效地捕捉这些变化,并将它们正确地反映到数据仓库中。

通常,缓慢变化维的处理方式分为几种类型:

  1. SCD Type 1(覆盖型):在这种方式下,当维度数据发生变化时,直接覆盖原有数据,不保留历史记录。例如,客户地址发生变化时,原地址会被新的地址直接覆盖,历史数据不再保留。这种方法实现简单,但无法保留历史数据,对于需要历史追溯的业务场景不适用。
  2. SCD Type 2(追加型):在这种方式下,维度数据的变化会被追加为一条新的记录,并为每条记录分配一个有效时间段。通过这种方式,可以保留维度数据的历史变化信息。例如,当客户的地址发生变化时,原地址记录会被保留,同时新增一条记录记录新的地址。历史记录的追溯更加灵活,但也会增加数据量和复杂度。
  3. SCD Type 3(有限历史记录):这种方式在维度表中增加了一个或多个历史字段,用于存储维度数据的前一个状态。每次维度数据变化时,只会保留最近的变动记录,无法保留全部历史。例如,客户地址变化时,只有最近的两个地址会被保留,原地址被覆盖,而不保留超过两个历史地址。这种方式适合只关心部分历史数据的场景,且存储空间要求较高时会是一个较好的选择。
    1. SCD Type 4(历史表):这种方式通过创建一个单独的历史表来保存维度表的历史记录。维度表只保留当前数据,而历史数据则存储在另一张表中。当维度数据发生变化时,历史表中会插入一条新的记录,记录该维度的历史状态。这种方式适用于需要频繁查询历史数据,同时希望减少维度表存储压力的场景。
    2. SCD Type 6(混合型):SCD Type 6 结合了 SCD Type 1、Type 2 和 Type 3 的特点,通常是在维度表中同时存储当前值、历史值以及有效时间段。它允许灵活地查询当前值和历史变化,同时保留一定的历史信息。这种方式适用于数据仓库系统中既需要追踪完整历史,又需要快速查询当前数据的场景。

    在选择缓慢变化维的处理方式时,需要根据业务需求来决定。例如,如果业务需求对历史数据的查询要求不高,可以选择 SCD Type 1;而如果需要保留完整的历史记录,则应该选择 SCD Type 2 或 SCD Type 4。

    对于缓慢变化维的管理,除了选择合适的处理方式外,还可以采取以下措施:

    • 定期清理:随着时间的推移,维度表的历史记录会逐渐增多,导致表的体积不断扩大。因此,应定期对历史表进行清理,以避免存储空间的浪费。
    • 高效的索引:对于缓慢变化维表中的历史记录,应根据查询需求设计合适的索引。例如,可以为“有效时间段”字段创建索引,以提高对历史数据的查询效率。
    • ETL 过程中的增量加载:为了减少加载历史数据的压力,ETL 过程可以采用增量加载的方式,仅加载新增或变更的维度数据,而不需要重新加载整个维度表。

    通过以上措施,能够有效管理缓慢变化维的数据,并确保数据仓库能够高效、准确地反映维度数据的变化。

    OLAP 与 OLTP 的区别是什么?(微众银行)

    OLAP(联机分析处理)与 OLTP(联机事务处理)是两种不同的数据库应用模型,它们的应用场景和设计要求有所不同。理解两者的区别,对于设计高效的数据仓库和事务处理系统至关重要。

    1. 主要目的:OLAP:主要用于支持分析性查询,帮助企业进行决策分析、数据挖掘等。OLAP 系统需要处理复杂的查询,分析历史数据并进行多维分析,通常是“读取多、写入少”。OLTP:主要用于支持日常的事务处理,如银行交易、在线购物、订单管理等。OLTP 系统主要处理实时的操作性数据,涉及大量的插入、更新和删除操作。
    2. 数据结构:OLAP:使用多维数据模型(如星型模式、雪花型模式等)来组织数据。数据通常按照维度和度量(如销售额、利润等)来存储,支持快速的聚合和计算。OLTP:使用关系型数据库模型,数据存储在表格中,并且每个表通常具有高度规范化(即避免数据冗余)。OLTP 系统的设计侧重于数据的插入、更新、删除操作的效率。
    3. 查询复杂度:OLAP:查询通常非常复杂,涉及大规模的数据分析和汇总,要求快速响应用户的查询请求。例如,多维度切片、钻取等复杂查询。OLTP:查询相对简单,通常是对单条记录的操作(例如,查询某个用户的订单信息)。
    4. 性能要求:OLAP:更关注查询的响应时间和查询的吞吐量。为了优化查询性能,OLAP 系统通常会使用预计算的聚合数据,减少查询时的计算负担。OLTP:更关注事务的响应速度和高并发处理能力。为了保证数据一致性,OLTP 系统通常会使用事务管理和锁机制。
    5. 数据更新频率:OLAP:数据更新频率较低,通常是定期从 OLTP 系统中导入数据,进行批量处理。OLTP:数据更新频繁,通常涉及实时的插入、更新和删除操作。
    6. 操作类型:OLAP:主要进行“读取”操作,侧重于对大数据集进行复杂的查询、分析和报表生成。OLTP:主要进行“写入”和“更新”操作,侧重于处理高并发的事务请求,保证事务的原子性、一致性、隔离性和持久性(ACID)。

    总结:

    • OLAP 适用于数据分析和报表生成,数据量大,查询复杂,主要关注读取性能和多维分析功能。
    • OLTP 适用于日常事务处理,数据更新频繁,操作简单,主要关注高并发和事务管理。

    理解这两者的区别有助于在设计系统时做出合适的架构选择,比如在数据仓库设计时常会结合 OLAP 和 OLTP 系统,使得 OLTP 系统处理日常事务,而 OLAP 系统则进行历史数据的分析和决策支持。

    过拟合的原因及解决方法是什么?(滴滴、腾讯)

    过拟合是指在机器学习中,模型在训练数据上表现得很好,但在新数据(测试集或实际应用中)上的表现较差。其主要原因通常是模型过于复杂,以至于捕捉到了训练数据中的噪声或无关特征,从而影响了模型的泛化能力。

    过拟合的原因有很多:

    1. 模型复杂度过高:当模型的复杂度远高于问题的实际需要时,模型会对训练数据的噪声和细节过于敏感,导致模型对训练数据的拟合过于精确,难以对新的数据做出准确预测。典型的例子是使用高阶多项式进行回归建模。
    2. 数据量不足:当训练数据量过少时,模型可能无法看到足够的样本分布,从而过于依赖现有数据的模式进行拟合,导致过拟合现象。
    3. 噪声数据过多:训练数据中的噪声会干扰模型学习到数据的真实模式,尤其在数据中包含不相关或错误的特征时,模型容易被噪声“误导”,从而导致过拟合。
    4. 特征选择不当:使用过多的特征或无关特征会导致模型变得过于复杂,进而增加过拟合的风险。

    解决过拟合的方法:

    1. 简化模型:减少模型的复杂度,可以通过降低模型的参数数量,选择更简单的算法来避免过拟合。例如,对于线性回归问题,可以使用较低阶的多项式,而不是使用高阶多项式进行拟合。
    2. 增加训练数据量:增加训练集的样本量可以帮助模型学习到更多的样本分布,进而提高其泛化能力。数据量增加后,模型会有更多机会学习到数据中的真实模式,而不是噪声。
    3. 正则化:正则化技术(如L1和L2正则化)通过对模型的复杂度进行惩罚,限制模型的自由度,从而减少过拟合。L2正则化会向损失函数中添加一个权重的平方项,鼓励模型的权重向零收敛。
    4. 交叉验证:交叉验证可以帮助我们更好地评估模型的泛化能力,避免模型对特定训练集过拟合。通过k-fold交叉验证,模型可以在多个不同的训练集上进行训练和评估,从而提高其泛化性能。
    5. Dropout(在深度学习中使用):Dropout 是一种随机丢弃神经网络节点的方法,它能有效地防止神经网络过拟合。在训练过程中,Dropout 随机“丢弃”一部分神经元,迫使网络学习到更加稳定和鲁棒的特征。
    6. 提前停止:在训练深度学习模型时,可以使用提前停止技术,在验证集上的性能不再提升时停止训练。这可以防止模型在训练集上过拟合,确保模型的泛化能力。
    7. 数据增强:在图像处理等领域,使用数据增强技术(如旋转、翻转、缩放图像等)可以增加训练数据的多样性,从而降低模型的过拟合风险。

    欠拟合的原因及解决方法是什么?(腾讯)

    欠拟合是指在机器学习中,模型无法充分学习到训练数据中的模式,导致在训练集和测试集上均表现不佳。欠拟合通常发生在模型的复杂度过低,无法捕捉数据中的重要特征。

    欠拟合的原因如下:

    1. 模型复杂度过低:当模型的假设空间过于简单,无法捕捉到数据中的复杂模式时,就容易发生欠拟合。例如,使用线性回归拟合一个本质上是非线性的数据集时,就会导致欠拟合。
    2. 特征选择不当:如果我们忽略了对数据中关键特征的选择,或者没有选择合适的特征进行建模,模型将无法获得有效的信息,进而导致欠拟合。
    3. 训练不足:模型训练的轮数过少,导致模型没有足够的机会学习到数据的规律,无法充分拟合训练数据。
    4. 数据预处理不当:不恰当的数据预处理方法,如过度标准化或去除有效信息,也可能导致模型无法从数据中提取有效特征,导致欠拟合。

    解决欠拟合的方法:

  4. 增加模型复杂度:可以通过选择更复杂的模型来解决欠拟合问题。例如,在非线性问题中使用支持向量机(SVM)或神经网络等复杂模型,来捕捉数据中的非线性关系。
  5. 使用更多的特征:通过增加更多与问题相关的特征,帮助模型从数据中学习到更多的信息,从而改善欠拟合。
  6. 训练更多的轮次:增加训练的轮数,让模型有更多的机会进行参数优化,学习数据的复杂模式。
  7. 调整正则化参数:如果使用了正则化,可能正则化参数设置过强,限制

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

17年+码农经历了很多次面试,多次作为面试官面试别人,多次大数据面试和面试别人,深知哪些面试题是会被经常问到。 在多家企业从0到1开发过离线数仓实时数仓等多个大型项目,详细介绍项目架构等企业内部秘不外传的资料,介绍踩过的坑和开发干货,分享多个拿来即用的大数据ETL工具,让小白用户快速入门并精通,指导如何入职后快速上手。 计划更新内容100篇以上,包括一些企业内部秘不外宣的干货,欢迎订阅!

全部评论

相关推荐

评论
点赞
5
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务