我一直在尝试使用Keras构建机器学习模型,该模型根据预处理参数预测辐射剂量。我的数据集大约有2200个样本,其中20%用于验证和测试。
目标变量的问题在于它非常不对称,因为大剂量的辐射比小剂量的辐射要少得多。因此,我怀疑我的回归模型根本无法预测较大的值,而无法预测均值附近的一切,从图中可以明显看出。我试图对目标变量进行对数归一化以使其更正常地分布,但是它没有任何作用。
任何建议如何解决此问题?
答案 0 :(得分:1)
基于10个直方图箱计算单个样本权重对我而言很有帮助。请参见下面的代码:
import pandas as pd
import numpy as np
from sklearn.utils.class_weight import compute_sample_weight
hist, bin_edges = np.histogram(training_targets, bins = 10)
classes = training_targets.apply(lambda x: pd.cut(x, bin_edges, labels = False,
include_lowest = True)).values
sample_weights = compute_sample_weight('balanced', classes)