本文整理汇总了Python中sklearn.calibration.CalibratedClassifierCV方法的典型用法代码示例。如果您正苦于以下问题:Python calibration.CalibratedClassifierCV方法的具体用法?Python calibration.CalibratedClassifierCV怎么用?Python calibration.CalibratedClassifierCV使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类sklearn.calibration
的用法示例。
在下文中一共展示了calibration.CalibratedClassifierCV方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_sample_weight
# 需要导入模块: from sklearn import calibration [as 别名]
# 或者: from sklearn.calibration import CalibratedClassifierCV [as 别名]
def test_sample_weight():
n_samples = 100
X, y = make_classification(n_samples=2 * n_samples, n_features=6,
random_state=42)
sample_weight = np.random.RandomState(seed=42).uniform(size=len(y))
X_train, y_train, sw_train = \
X[:n_samples], y[:n_samples], sample_weight[:n_samples]
X_test = X[n_samples:]
for method in ['sigmoid', 'isotonic']:
base_estimator = LinearSVC(random_state=42)
calibrated_clf = CalibratedClassifierCV(base_estimator, method=method)
calibrated_clf.fit(X_train, y_train, sample_weight=sw_train)
probs_with_sw = calibrated_clf.predict_proba(X_test)
# As the weights are used for the calibration, they should still yield
# a different predictions
calibrated_clf.fit(X_train, y_train)
probs_without_sw = calibrated_clf.predict_proba(X_test)
diff = np.linalg.norm(probs_with_sw - probs_without_sw)
assert_greater(diff, 0.1)
示例2: test_calibration_accepts_ndarray
# 需要导入模块: from sklearn import calibration [as 别名]
# 或者: from sklearn.calibration import CalibratedClassifierCV [as 别名]
def test_calibration_accepts_ndarray(X):
"""Test that calibration accepts n-dimensional arrays as input"""
y = [1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0]
class MockTensorClassifier(BaseEstimator):
"""A toy estimator that accepts tensor inputs"""
def fit(self, X, y):
self.classes_ = np.unique(y)
return self
def decision_function(self, X):
# toy decision function that just needs to have the right shape:
return X.reshape(X.shape[0], -1).sum(axis=1)
calibrated_clf = CalibratedClassifierCV(MockTensorClassifier())
# we should be able to fit this classifier with no error
calibrated_clf.fit(X, y)
示例3: make_blender_cv
# 需要导入模块: from sklearn import calibration [as 别名]
# 或者: from sklearn.calibration import CalibratedClassifierCV [as 别名]
def make_blender_cv(classifier, x, y, calibrate=False):
skf = StratifiedKFold(y, n_folds=5, random_state=23)
scores, predictions = [], None
for train_index, test_index in skf:
if calibrate:
# Make training and calibration
calibrated_classifier = CalibratedClassifierCV(classifier, method='isotonic', cv=get_cv(y[train_index]))
fitted_classifier = calibrated_classifier.fit(x[train_index, :], y[train_index])
else:
fitted_classifier = classifier.fit(x[train_index, :], y[train_index])
preds = fitted_classifier.predict_proba(x[test_index, :])
# Free memory
calibrated_classifier, fitted_classifier = None, None
gc.collect()
scores.append(log_loss(y[test_index], preds))
predictions = np.append(predictions, preds, axis=0) if predictions is not None else preds
return scores, predictions
示例4: test_model_calibrated_classifier_cv_float
# 需要导入模块: from sklearn import calibration [as 别名]
# 或者: from sklearn.calibration import CalibratedClassifierCV [as 别名]
def test_model_calibrated_classifier_cv_float(self):
data = load_iris()
X, y = data.data, data.target
clf = MultinomialNB().fit(X, y)
model = CalibratedClassifierCV(clf, cv=2, method="sigmoid").fit(X, y)
model_onnx = convert_sklearn(
model,
"scikit-learn CalibratedClassifierCVMNB",
[("input", FloatTensorType([None, X.shape[1]]))],
target_opset=TARGET_OPSET
)
self.assertTrue(model_onnx is not None)
dump_data_and_model(
X.astype(np.float32),
model,
model_onnx,
basename="SklearnCalibratedClassifierCVFloat",
allow_failure="StrictVersion(onnxruntime.__version__)"
"<= StrictVersion('0.2.1')",
)
示例5: test_model_calibrated_classifier_cv_float_nozipmap
# 需要导入模块: from sklearn import calibration [as 别名]
# 或者: from sklearn.calibration import CalibratedClassifierCV [as 别名]
def test_model_calibrated_classifier_cv_float_nozipmap(self):
data = load_iris()
X, y = data.data, data.target
clf = MultinomialNB().fit(X, y)
model = CalibratedClassifierCV(clf, cv=2, method="sigmoid").fit(X, y)
model_onnx = convert_sklearn(
model, "scikit-learn CalibratedClassifierCVMNB",
[("input", FloatTensorType([None, X.shape[1]]))],
target_opset=TARGET_OPSET,
options={id(model): {'zipmap': False}})
self.assertTrue(model_onnx is not None)
dump_data_and_model(
X.astype(np.float32), model, model_onnx,
basename="SklearnCalibratedClassifierCVFloatNoZipMap",
allow_failure="StrictVersion(onnxruntime.__version__)"
"<= StrictVersion('0.2.1')")
示例6: test_model_calibrated_classifier_cv_int
# 需要导入模块: from sklearn import calibration [as 别名]
# 或者: from sklearn.calibration import CalibratedClassifierCV [as 别名]
def test_model_calibrated_classifier_cv_int(self):
data = load_digits()
X, y = data.data, data.target
clf = MultinomialNB().fit(X, y)
model = CalibratedClassifierCV(clf, cv=2, method="sigmoid").fit(X, y)
model_onnx = convert_sklearn(
model,
"scikit-learn CalibratedClassifierCVMNB",
[("input", Int64TensorType([None, X.shape[1]]))],
target_opset=TARGET_OPSET
)
self.assertTrue(model_onnx is not None)
dump_data_and_model(
X.astype(np.int64),
model,
model_onnx,
basename="SklearnCalibratedClassifierCVInt-Dec4",
allow_failure="StrictVersion(onnxruntime.__version__)"
"<= StrictVersion('0.2.1')",
)
示例7: test_model_calibrated_classifier_cv_isotonic_float
# 需要导入模块: from sklearn import calibration [as 别名]
# 或者: from sklearn.calibration import CalibratedClassifierCV [as 别名]
def test_model_calibrated_classifier_cv_isotonic_float(self):
data = load_iris()
X, y = data.data, data.target
clf = KNeighborsClassifier().fit(X, y)
model = CalibratedClassifierCV(clf, cv=2, method="isotonic").fit(X, y)
model_onnx = convert_sklearn(
model,
"scikit-learn CalibratedClassifierCVKNN",
[("input", FloatTensorType([None, X.shape[1]]))],
target_opset=TARGET_OPSET
)
self.assertTrue(model_onnx is not None)
try:
dump_data_and_model(
X.astype(np.float32),
model,
model_onnx,
basename="SklearnCalibratedClassifierCVIsotonicFloat")
except Exception as e:
raise AssertionError("Issue with model\n{}".format(
model_onnx)) from e
示例8: test_model_calibrated_classifier_cv_binary
# 需要导入模块: from sklearn import calibration [as 别名]
# 或者: from sklearn.calibration import CalibratedClassifierCV [as 别名]
def test_model_calibrated_classifier_cv_binary(self):
data = load_iris()
X, y = data.data, data.target
y[y > 1] = 1
clf = MultinomialNB().fit(X, y)
model = CalibratedClassifierCV(clf, cv=2, method="sigmoid").fit(X, y)
model_onnx = convert_sklearn(
model,
"scikit-learn CalibratedClassifierCV",
[("input", FloatTensorType([None, X.shape[1]]))],
target_opset=TARGET_OPSET
)
self.assertTrue(model_onnx is not None)
dump_data_and_model(
X.astype(np.float32),
model,
model_onnx,
basename="SklearnCalibratedClassifierCVBinaryMNB",
allow_failure="StrictVersion(onnxruntime.__version__)"
"<= StrictVersion('0.2.1')",
)
示例9: test_model_calibrated_classifier_cv_logistic_regression
# 需要导入模块: from sklearn import calibration [as 别名]
# 或者: from sklearn.calibration import CalibratedClassifierCV [as 别名]
def test_model_calibrated_classifier_cv_logistic_regression(self):
data = load_iris()
X, y = data.data, data.target
y[y > 1] = 1
model = CalibratedClassifierCV(
base_estimator=LogisticRegression(), method='sigmoid').fit(X, y)
model_onnx = convert_sklearn(
model, "unused",
[("input", FloatTensorType([None, X.shape[1]]))],
target_opset=TARGET_OPSET
)
self.assertTrue(model_onnx is not None)
dump_data_and_model(
X.astype(np.float32),
model,
model_onnx,
basename="SklearnCalibratedClassifierCVBinaryLogReg",
allow_failure="StrictVersion(onnxruntime.__version__)"
"<= StrictVersion('0.2.1')",
)
示例10: test_calibration_prefit
# 需要导入模块: from sklearn import calibration [as 别名]
# 或者: from sklearn.calibration import CalibratedClassifierCV [as 别名]
def test_calibration_prefit():
"""Test calibration for prefitted classifiers"""
n_samples = 50
X, y = make_classification(n_samples=3 * n_samples, n_features=6,
random_state=42)
sample_weight = np.random.RandomState(seed=42).uniform(size=y.size)
X -= X.min() # MultinomialNB only allows positive X
# split train and test
X_train, y_train, sw_train = \
X[:n_samples], y[:n_samples], sample_weight[:n_samples]
X_calib, y_calib, sw_calib = \
X[n_samples:2 * n_samples], y[n_samples:2 * n_samples], \
sample_weight[n_samples:2 * n_samples]
X_test, y_test = X[2 * n_samples:], y[2 * n_samples:]
# Naive-Bayes
clf = MultinomialNB()
clf.fit(X_train, y_train, sw_train)
prob_pos_clf = clf.predict_proba(X_test)[:, 1]
# Naive Bayes with calibration
for this_X_calib, this_X_test in [(X_calib, X_test),
(sparse.csr_matrix(X_calib),
sparse.csr_matrix(X_test))]:
for method in ['isotonic', 'sigmoid']:
pc_clf = CalibratedClassifierCV(clf, method=method, cv="prefit")
for sw in [sw_calib, None]:
pc_clf.fit(this_X_calib, y_calib, sample_weight=sw)
y_prob = pc_clf.predict_proba(this_X_test)
y_pred = pc_clf.predict(this_X_test)
prob_pos_pc_clf = y_prob[:, 1]
assert_array_equal(y_pred,
np.array([0, 1])[np.argmax(y_prob, axis=1)])
assert_greater(brier_score_loss(y_test, prob_pos_clf),
brier_score_loss(y_test, prob_pos_pc_clf))
示例11: test_calibration_nan_imputer
# 需要导入模块: from sklearn import calibration [as 别名]
# 或者: from sklearn.calibration import CalibratedClassifierCV [as 别名]
def test_calibration_nan_imputer():
"""Test that calibration can accept nan"""
X, y = make_classification(n_samples=10, n_features=2,
n_informative=2, n_redundant=0,
random_state=42)
X[0, 0] = np.nan
clf = Pipeline(
[('imputer', SimpleImputer()),
('rf', RandomForestClassifier(n_estimators=1))])
clf_c = CalibratedClassifierCV(clf, cv=2, method='isotonic')
clf_c.fit(X, y)
clf_c.predict(X)
示例12: test_calibration_prob_sum
# 需要导入模块: from sklearn import calibration [as 别名]
# 或者: from sklearn.calibration import CalibratedClassifierCV [as 别名]
def test_calibration_prob_sum():
# Test that sum of probabilities is 1. A non-regression test for
# issue #7796
num_classes = 2
X, y = make_classification(n_samples=10, n_features=5,
n_classes=num_classes)
clf = LinearSVC(C=1.0)
clf_prob = CalibratedClassifierCV(clf, method="sigmoid", cv=LeaveOneOut())
clf_prob.fit(X, y)
probs = clf_prob.predict_proba(X)
assert_array_almost_equal(probs.sum(axis=1), np.ones(probs.shape[0]))
示例13: fit
# 需要导入模块: from sklearn import calibration [as 别名]
# 或者: from sklearn.calibration import CalibratedClassifierCV [as 别名]
def fit(self, X, y, sample_weight=None, eval_set=None, sample_weight_eval_set=None, **kwargs):
X = dt.Frame(X)
orig_cols = list(X.names)
if self.num_classes >= 2:
mod = linsvc(random_state=self.random_state, C=self.params["C"], penalty=self.params["penalty"],
loss=self.params["loss"], dual=self.params["dual"])
kf = StratifiedKFold(n_splits=3, shuffle=True, random_state=self.random_state)
model = CalibratedClassifierCV(base_estimator=mod, method='isotonic', cv=kf)
lb = LabelEncoder()
lb.fit(self.labels)
y = lb.transform(y)
else:
model = LinearSVR(epsilon=self.params["epsilon"], C=self.params["C"], loss=self.params["loss"],
dual=self.params["dual"], random_state=self.random_state)
self.means = dict()
self.standard_scaler = StandardScaler()
for col in X.names:
XX = X[:, col]
self.means[col] = XX.mean1()
if self.means[col] is None:
self.means[col] = 0
XX.replace(None, self.means[col])
X[:, col] = XX
assert X[dt.isna(dt.f[col]), col].nrows == 0
X = X.to_numpy()
X = self.standard_scaler.fit_transform(X)
model.fit(X, y, sample_weight=sample_weight)
importances = np.array([0.0 for k in range(len(orig_cols))])
if self.num_classes >= 2:
for classifier in model.calibrated_classifiers_:
importances += np.array(abs(classifier.base_estimator.get_coeff()))
else:
importances += np.array(abs(model.coef_[0]))
self.set_model_properties(model=model,
features=orig_cols,
importances=importances.tolist(), # abs(model.coef_[0])
iterations=0)
示例14: try_rf_classifier
# 需要导入模块: from sklearn import calibration [as 别名]
# 或者: from sklearn.calibration import CalibratedClassifierCV [as 别名]
def try_rf_classifier():
# TODO: Evaluate TPOT
# http://www.randalolson.com/2016/05/08/tpot-a-python-tool-for-automating-data-science/
# https://www.reddit.com/r/MachineLearning/comments/4ij8dw/tpot_a_python_tool_for_automating_machine_learning/
# http://keras.io/ --- unifies tensorflow / theano
from sklearn.ensemble import RandomForestClassifier
from sklearn.calibration import CalibratedClassifierCV
from sklearn.metrics import log_loss
# http://scikit-learn.org/stable/auto_examples/calibration/plot_calibration_multiclass.html
pairwise_feats, labels = random_case_set()
X = pairwise_feats
y = labels
X_train, y_train = X[:600], y[:600]
X_valid, y_valid = X[600:800], y[600:800]
X_train_valid, y_train_valid = X[:800], y[:800]
X_test, y_test = X[800:], y[800:]
# Train uncalibrated random forest classifier on whole train and validation
# data and evaluate on test data
clf = RandomForestClassifier(n_estimators=25)
clf.fit(X_train_valid, y_train_valid)
clf_probs = clf.predict_proba(X_test)
score = log_loss(y_test, clf_probs)
print('score = %r' % (score,))
# Train random forest classifier, calibrate on validation data and evaluate
# on test data
clf = RandomForestClassifier(n_estimators=25)
clf.fit(X_train, y_train)
clf_probs = clf.predict_proba(X_test)
sig_clf = CalibratedClassifierCV(clf, method="sigmoid", cv="prefit")
sig_clf.fit(X_valid, y_valid)
sig_clf_probs = sig_clf.predict_proba(X_test)
sig_score = log_loss(y_test, sig_clf_probs)
print('sig_score = %r' % (sig_score,))
示例15: test_with_calibrated_classifier_cv
# 需要导入模块: from sklearn import calibration [as 别名]
# 或者: from sklearn.calibration import CalibratedClassifierCV [as 别名]
def test_with_calibrated_classifier_cv(self, net_fit, data):
from sklearn.calibration import CalibratedClassifierCV
cccv = CalibratedClassifierCV(net_fit, cv=2)
cccv.fit(*data)