Python cat增压功能具有';训练数据中的分类类型,但';浮动';输入测试数据集
我正在使用catboostclassifier,我有一个训练数据集和一个验证数据集。每个数据集都有相同的5列,其中有一列名为“colC”,属于分类列(列“colC”的格式为int)。我测试了数据帧,在“colC”列中,两个数据帧的数据类型相同 当我执行下一个代码时,我得到一个错误:Python cat增压功能具有';训练数据中的分类类型,但';浮动';输入测试数据集,python,categorical-data,catboost,Python,Categorical Data,Catboost,我正在使用catboostclassifier,我有一个训练数据集和一个验证数据集。每个数据集都有相同的5列,其中有一列名为“colC”,属于分类列(列“colC”的格式为int)。我测试了数据帧,在“colC”列中,两个数据帧的数据类型相同 当我执行下一个代码时,我得到一个错误: val_pool = Pool(X_validation, y_validation) estimator.fit(X_train, y_train, eval_set = val_pool, sample_wei
val_pool = Pool(X_validation, y_validation)
estimator.fit(X_train, y_train, eval_set = val_pool, sample_weight = sample_weights, cat_features = ['colC'])
下一个错误是:
catboost/libs/data/features_layout.cpp:391: Feature #3 has 'Categorical' type in training data, but 'Float' type in test dataset #0
原因可能是什么?我认为这个问题可以用
到
的方法来解决
例如:
from keras.utils import to_categorical
y_train = to_categorical(y_train, num_classes)
y_test = to_categorical(y_test, num_classes)
我认为这个问题可以用
to_category
方法解决
例如:
from keras.utils import to_categorical
y_train = to_categorical(y_train, num_classes)
y_test = to_categorical(y_test, num_classes)
您是如何分离列车/测试数据的?使用train_test_split方法?我得到了一个包含1000个元素的训练集,并使用X_validation=X_train.iloc[900:,:]提取了最后100个元素进行验证。我认为问题在于您没有使用keras
将y_train
和y_test
转换为\u category
方法。例如:y\u train=keras.utils.to\u category(y\u train,num\u classes)和y\u test=keras.utils.to\u category(y\u test,num\u classes)
。你是这样转换的吗?错误还在继续…当我尝试从estimator.fit()中删除eval_集时,代码仍然有效。。。我的意思是,删除验证集,只让训练X和y代码工作你是如何分离训练/测试数据的?使用train_test_split方法?我得到了一个包含1000个元素的训练集,并使用X_validation=X_train.iloc[900:,:]提取了最后100个元素进行验证。我认为问题在于您没有使用keras将y_train
和y_test
转换为\u category
方法。例如:y\u train=keras.utils.to\u category(y\u train,num\u classes)和y\u test=keras.utils.to\u category(y\u test,num\u classes)
。你是这样转换的吗?错误还在继续…当我尝试从estimator.fit()中删除eval_集时,代码仍然有效。。。我的意思是,移除验证集,只让训练X和y代码工作是的,我将其应用于y_训练和y_验证是的,我将其应用于y_训练和y_验证