2017-10-31 5 views
0

値。 catboostのドキュメントからCatboost理解 - カテゴリの変換は、私がcatboostにいくつかの愚かな質問がある

は、私は、行の間にいくつかの並べ替え/ shuffleは、カテゴリデータ変換のために、そこにあることを理解。(https://tech.yandex.com/catboost/doc/dg/concepts/algorithm-main-stages_cat-to-numberic-docpage/#algorithm-main-stages_cat-to-numberic

私は私のモデルかどうかを確認するために、単一の観察に予測しようとしていました動作しますが、エラーが発生します。しかし、2つの観測では、正常に動作します。

私の質問は、catboost分類器の予測のために、我々は、少なくともための順列の2つの観測を与えなければならないのですか?はいの場合、最初の観測が出力に影響を与えますか?

答えて

0

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! 

:次のコードは、問題を示しています。元の行の出力には影響しません。

関連する問題