代码之家  ›  专栏  ›  技术社区  ›  Sherwin R

随机森林预测错误的输出形状

  •  -1
  • Sherwin R  · 技术社区  · 2 年前

    我试图用随机森林建立一个回归模型。我的训练数据形状:

    X_train.shape = (8,7) # 8 is the no. of samples -- 7 is the number of features
    y_train.shape = (8,100) # 8 is the no. of samples -- 100 is the output array size
    

    拟合模型后

    model = RandomForestRegressor(n_estimators = 300, random_state=30)
    model.fit(X, y)
    

    在预测单个新样本的输出时

    X_test.shape = (1,7)
    

    我得到的输出形状是 (8,100) 而不是 (1,100) .这里有什么问题?

    1 回复  |  直到 2 年前
        1
  •  -1
  •   Deepak Sadulla    2 年前

    也许你正在通过X_训练来预测方法,而不是X_测试,检查你的代码是否有拼写错误。

    我通过创建一个基于随机数据的模型来验证这一点。它正在按预期工作。

    enter image description here

    干得好

    from sklearn.ensemble import RandomForestRegressor 
    import sklearn
    print(sklearn.__version__)
    
    X_train = np.random.random((8,7))
    y_train = np.random.random((8,100))
    print(X_train.shape, y_train.shape)
    
    model = RandomForestRegressor(n_estimators = 300, random_state=30)
    model.fit(X_train, y_train)
    
    X_test = np.random.random((1,7))
    predictions = model.predict(X_test) # Make sure it is X_test and not X_train
    print(predictions.shape)