Catboostは確かにそのような制限があります。しかし、それはあてはめ段階でのみ適用されるため、順列とは何の関係もありません。
とfit
の前に同じ方法catboost.Pool._check_data_empty
が適用されるという問題があります。フィッティングのために、複数の観測を持つことは、本当に重要です。
今すぐチェック機能は確かに奇妙であるsum(x.shape)>2
が必要です。あなたはpredict
を呼び出す前に、1つのまたは2以上の偽の行を追加することでも行うことができ、今の
import catboost
import numpy as np
x_train3 = np.array([[1,2,3,], [2,3,4], [3,4,5]])
x_train1 = np.array([[1], [2], [3]])
y_train = np.array([1,2,3])
x_test3_2 = np.array([[4,5,6], [5,6,7]])
x_test3_1 = np.array([[4,5,6,]])
x_test1_2 = np.array([[4], [5]])
x_test1_1 = np.array([[4]])
model3 = catboost.CatBoostRegressor().fit(x_train3, y_train)
model1 = catboost.CatBoostRegressor().fit(x_train1, y_train)
print(model3.predict(x_test3_2)) # OK
print(model3.predict(x_test3_1)) # OK
print(model1.predict(x_test1_2)) # OK
print(model1.predict(x_test1_1)) # Throws an error!
:次のコードは、問題を示しています。元の行の出力には影響しません。