进行Logistic回归之类的随机森林输出

时间:2018-12-10 00:09:42

标签: python scikit-learn random-forest logistic-regression sklearn-pandas

我在问维数等问题。我正在尝试用随机森林实现这一惊人的工作 https://www.kaggle.com/allunia/how-to-attack-a-machine-learning-model/notebook

逻辑回归和随机森林都来自sklearn,但是当我从随机森林模型获得权重时(784,)而逻辑回归返回(10,784)

我最大的问题主要是维度和NaN,无穷大或对于攻击方法的dtype错误而言值太大。使用逻辑回归的权重是(10,784),但使用Random Forest的权重(784,)可能是造成此问题的原因吗?还是可以建议对攻击方法进行一些修改?我尝试使用Imputer来解决NaN值错误,但它希望我重塑形状,所以我已经做到了。 我尝试将np.mat应用于遇到的尺寸错误,但它们没有起作用。

def non_targeted_gradient(target, output, w):
    target = target.reshape(1, -1)
    output = output.reshape(1, -1)
    w = w.reshape(1,-1)
    target = imp.fit_transform(target)
    output = imp.fit_transform(output)
    w = imp.fit_transform(w)
    ww = calc_output_weighted_weights(output, w)
    for k in range(len(target)):
        if k == 0:
            gradient = np.mat((1-target[k])) * np.mat((w[k]-ww))
        else:
            gradient += np.mat((1-target[k])) * np.mat((w[k]-ww))
    return gradient

我可能做错了很多事情,但是 TL; DR 是我正在尝试在上面的链接中应用随机森林而不是Logistic回归。

编辑:

我为randomforestclassifier添加了一个包装器:

class RandomForestWrapper(RandomForestClassifier):
    def fit(self, *args, **kwargs):
        super(RandomForestClassifierWithCoef, self).fit(*args, **kwargs)
        self.coef_ = self.feature_importances_

0 个答案:

没有答案