根据值使用不同的估算器

时间:2016-02-01 14:06:44

标签: python feature-selection supervised-learning

我要做的是根据功能中的值构建一个回归量。 也就是说,我有一些列,其中一个更重要(让我们假设它是gender)(当然它与目标值Y不同)。

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

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

2 个答案:

答案 0 :(得分:2)

您可以实现自己的回归量。我们假设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

答案 1 :(得分:0)

我个人不熟悉Python,但我会使用列表的数据类型。然后我会继续进行会员检查并参考你刚才写的清单。然后继续说如果member = true则运行/使用randomForest regressor。如果错误使用/运行另一个回归量。