sklearn 使用自己的估算器 API,因此您需要使您的模型(无论是 catboost、keras...)与此 API 兼容。
sklearn 提供了一种方法来实现您自己的 sklearn 兼容估算器或以兼容的方式包装现有模型。这样做的方法是扩展 sklearn 的 BaseEstimator 类并提供所需方法的实现(例如 fit 和 predict)。这是一个取自文档的简单示例。
import numpy as np
from sklearn.base import BaseEstimator, ClassifierMixin
from sklearn.utils.validation import check_X_y, check_array, check_is_fitted
from sklearn.utils.multiclass import unique_labels
from sklearn.metrics import euclidean_distances
class TemplateClassifier(BaseEstimator, ClassifierMixin):
def __init__(self, demo_param='demo'):
self.demo_param = demo_param
def fit(self, X, y):
# Check that X and y have correct shape
X, y = check_X_y(X, y)
# Store the classes seen during fit
self.classes_ = unique_labels(y)
self.X_ = X
self.y_ = y
# Return the classifier
return self
def predict(self, X):
# Check is fit had been called
check_is_fitted(self)
# Input validation
X = check_array(X)
closest = np.argmin(euclidean_distances(X, self.X_), axis=1)
return self.y_[closest]
您可以找到更多信息here。