缺失值;若是类别型数据,如学生的籍贯信息缺失,就会采用出现频率最高的籍贯类别进行填充。
在归一化操作上,燧火框架主要运用了两种常用方法。一种是最大 - 最小归一化,它将数据的取值范围映射到从零到一的双闭区间,另一种是 z - sre 归一化,它基于数据的均值和标准差进行转换,将数据转换为均值为 0,标准差为 1 的分布。
通过这样的归一化处理,不同特征的数据在数值范围上保持一致,避免因特征数值范围差异过大,导致模型训练时某些特征被过度重视或忽视。
标准化操作在燧火框架中也有便捷的实现方式,框架会对数据进行零均值化处理,即先计算数据的均值,然后将每个数据点减去均值,使得处理后的数据均值为 0,接着计算数据的方差,再将每个数据点除以方差的平方根,从而得到方差为 1 的数据分布。
历景铄在设计燧火框架时,精心打磨了这些功能,如此一来,用户便能利用燧火框架进行细致的清洗、归一化和标准化,让数据以最佳状态进入下一阶段。
在后面的模型构建、训练、评估三大功能模块,秦奕同样大幅度借鉴 pytorch 的设计来指导历景铄团队燧火框架的设计。
如此一来,在模型构建环节,用户可以轻松定义各种机器学习模型,不管是简单的线性模型,还是复杂的决策树、神经网络等都不在话下。
在训练方面框架也直接内置了经典的随机梯度下降算法等优化算法,用户只要写一行代码便可以以此来训练模型,不断调整模型的参数,以最小化损失函数。
这里不得不提到反向传播算法,它是模型训练中极为关键的一环,在神经网络中,正向传播负责将输入数据通过各个神经元层层传递,最终得到预测结果。
而反向传播则是在计算出预测结果与真实标签之间的误差后,从输出层开始,沿着与正向传播相反的方向,将误差信号依次向后传播。
在这个过程中,利用链式法则计算每个参数的梯度,梯度代表了参数在哪个方向上变化能最大程度减少误差。
例如,对于一个简单的包含输入层、隐藏层和输出层的神经网络,正向传播时输入数据经过隐藏层