面试题答案
一键面试处理噪声数据
- 数据平滑:
- 移动平均法:对于数值型属性,可采用移动平均法。以节点的某个数值属性(如交易金额等)为例,假设属性值按时间序列排列,通过计算一定窗口内数据的平均值来平滑噪声。例如,窗口大小设为3,对于第i个数据点,用$(x_{i - 1}+x_{i}+x_{i + 1})/3$ 来替代原$x_{i}$值(边界情况可特殊处理)。
- 基于密度的方法:利用图中节点的连接密度来识别噪声节点。如使用DBSCAN算法的思想,在图中以节点为核心,计算邻域内节点密度。如果某个节点密度低于设定阈值,可将其视为噪声节点并考虑移除或修正其属性值。
- 异常值检测与处理:
- 基于统计的方法:对于数值属性,假设其服从某种分布(如正态分布),通过计算均值$\mu$和标准差$\sigma$,将偏离均值超过一定倍数标准差(如$3\sigma$)的数据点视为异常值。对于异常值节点,可以选择删除,或者将其属性值修正为合理范围(如用均值或中位数替代)。
- 基于机器学习的方法:训练一个异常检测模型,如Isolation Forest(隔离森林)。将节点的属性值作为特征输入模型,模型预测每个节点是否为异常值。对于预测为异常值的节点,按上述方法处理。
处理缺失值
- 删除缺失值记录:
- 完全删除法:如果缺失值比例较小(如小于5%),且缺失值分布较为分散,可以直接删除包含缺失值的节点或边。例如,在一个社交网络图中,如果某个用户节点有少量属性缺失,且缺失用户占比很低,可直接删除这些用户节点。但要注意这种方法可能会导致数据丢失,影响模型准确性。
- 填补缺失值:
- 均值/中位数填补法:对于数值型属性的缺失值,计算该属性非缺失值的均值或中位数进行填补。例如,在一个表示员工工资的图数据中,对于工资属性的缺失值,用所有员工工资的均值或中位数填补。
- 基于图结构的填补法:利用节点之间的连接关系来填补缺失值。比如在一个知识图谱中,如果某个实体节点的某个属性缺失,可以从其相邻节点中获取该属性值。例如,如果是关于人物的图谱,某个“职业”属性缺失,可从其具有“同事”关系的相邻节点中获取常见的职业来填补。
- 基于机器学习的填补法:使用机器学习模型来预测缺失值。例如,构建一个回归模型(对于数值型属性)或分类模型(对于类别型属性),利用其他非缺失属性作为特征,训练模型来预测缺失值。如用决策树回归模型预测房价图数据中缺失的房价属性值。