我正在尝试将一个基本的二进制逻辑回归模型移植到tensorflow,我想使用Estimator类,因为我只需要一个简单的模型。但是,由于我的两个类是不平衡的,sklearn版本使用了class\u weight参数。我看不到估计量的等效变量。你知道吗
我试图获得与以下功能相同的功能:
class_weight = {"false": 1, "true": 10}
model = sklearn.linear_model.LogisticRegression(class_weight = class_weight)
model.fit(X, Y)
我试过使用weight\列,但它似乎没有正确训练。它有更多的假阳性,由于阶级不平衡没有得到适当的考虑。我也尝试过改变损失函数,但我看到的每个例子都不适用于估计器框架:Weighted Training Examples in Tensorflow
def input_fn(X, Y):
features = dict(X)
features['weight'] = np.ones(len(X))
dataset = tf.data.Dataset.from_tensor_slices((features, Y))
return dataset.repeat(1).batch(len(Y)) # 1 epoch, no batching
model = tf.estimator.LinearClassifier(feature_columns, weight_column='weight')
model.train(input_fn: lambda: batching_fn(X, Y)
但这样做会使精确度降低6%左右,这是相当显著的。而且大部分都来自误报,所以模型没有正确地对阴性/假病例进行过采样。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐