根据价值使用不同的估算器

Posted

技术标签:

【中文标题】根据价值使用不同的估算器【英文标题】:Use a different estimator based on value 【发布时间】:2016-05-10 00:35:10 【问题描述】:

我想要做的是基于特征中的值构建一个回归器。 也就是说,我有一些列,其中一个更重要(假设它是gender)(当然它与目标值Y不同)。

我想说: - 如果gender 是男性,则使用 randomForest 回归器 - 否则使用另一个回归器

您是否知道使用sklearn 或python 中的任何其他库是否可以实现这一点?

【问题讨论】:

【参考方案1】:

您也许可以实现自己的回归器。让我们假设gender 是第一个特征。然后你可以做类似的事情

class MyRegressor():
    '''uses different regressors internally'''
    def __init__(self):
        self.randomForest = initializeRandomForest()
        self.kNN = initializekNN()

    def fit(self, X, y):
        '''calls the appropriate regressors'''
        X1 = X[X[:,0] == 1]
        y1 = y[X[:,0] == 1]
        X2 = X[X[:,0] != 1]
        y2 = y[X[:,0] != 1]
        self.randomForest.fit(X1, y1)
        self.kNN.fit(X2, y2)

    def predict(self, X):
        '''predicts values using regressors internally'''
        results = np.zeros(X.shape[0])
        results[X[:,0]==1] = self.randomForest.predict(X[X[:,0] == 1])
        results[X[:,0]!=1] = self.kNN.predict(X[X[:,0] != 1])

        return results

【讨论】:

非常感谢,这就是我要找的。但是,我编辑了您的解决方案,以免逐项迭代,这真的很慢。再次感谢【参考方案2】:

我个人是 Python 新手,但我会使用列表的数据类型。然后,我将继续进行成员资格检查并参考您刚刚编写的列表。然后继续说如果 member = true 然后运行/使用 randomForest 回归器。如果错误使用/运行另一个回归器。

【讨论】:

以上是关于根据价值使用不同的估算器的主要内容,如果未能解决你的问题,请参考以下文章

永续价值计算原理和公式推导

永续价值计算原理和公式推导

Oracle Flashback Technologies - 估算不同时间段闪回日志的产生量

自顶向下和自底向上的估算方式

在 R 中使用 ROLLING 平均值估算缺失值

软件成本估算:COCOMO 2模型方法的目录