本文簡要介紹python語言中 sklearn.gaussian_process.GaussianProcessClassifier
的用法。
用法:
class sklearn.gaussian_process.GaussianProcessClassifier(kernel=None, *, optimizer='fmin_l_bfgs_b', n_restarts_optimizer=0, max_iter_predict=100, warm_start=False, copy_X_train=True, random_state=None, multi_class='one_vs_rest', n_jobs=None)
基於拉普拉斯近似的高斯過程分類(GPC)。
該實現基於 Rasmussen 和 Williams 的機器學習高斯過程 (GPML) 的算法 3.1、3.2 和 5.1。
在內部,拉普拉斯近似用於通過高斯近似非高斯後驗。
目前,實施僅限於使用物流鏈接函數。對於多類分類,安裝了多個二元one-versus剩餘分類器。請注意,此類並未實現真正的多類拉普拉斯近似。
在用戶指南中閱讀更多信息。
- kernel:內核實例,默認=無
指定 GP 協方差函數的內核。如果 None 被傳遞,內核“1.0 * RBF(1.0)”被用作默認值。請注意,內核的超參數在擬合期間進行了優化。
- optimizer:‘fmin_l_bfgs_b’ 或可調用,默認='fmin_l_bfgs_b'
可以是用於優化內核參數的內部支持的優化器之一,由字符串指定,也可以是作為可調用傳遞的外部定義的優化器。如果傳遞了可調用對象,則它必須具有簽名:
def optimizer(obj_func, initial_theta, bounds): # * 'obj_func' is the objective function to be maximized, which # takes the hyperparameters theta as parameter and an # optional flag eval_gradient, which determines if the # gradient is returned additionally to the function value # * 'initial_theta': the initial value for theta, which can be # used by local optimizers # * 'bounds': the bounds on the values of theta .... # Returned are the best found hyperparameters theta and # the corresponding value of the target function. return theta_opt, func_min
默認情況下,使用來自scipy.optimize.minimize 的“L-BFGS-B”算法。如果 None 被傳遞,內核的參數保持固定。可用的內部優化器有:
'fmin_l_bfgs_b'
- n_restarts_optimizer:整數,默認=0
優化器重新啟動的次數,用於查找最大化log-marginal 可能性的內核參數。優化器的第一次運行是從內核的初始參數執行的,其餘的(如果有的話)來自 thetas 從允許的 theta-values 的空間中隨機采樣 log-uniform。如果大於 0,則所有邊界都必須是有限的。請注意,n_restarts_optimizer=0 意味著執行了一次運行。
- max_iter_predict:整數,默認=100
牛頓法中用於在預測期間逼近後驗的最大迭代次數。較小的值將以更差的結果為代價減少計算時間。
- warm_start:布爾,默認=假
如果啟用warm-starts,則在後驗模式的拉普拉斯近似上的最後一次牛頓迭代的解將用作_posterior_mode()的下一次調用的初始化。當 _posterior_mode 在與超參數優化類似的問題上被多次調用時,這可以加快收斂速度。請參閱詞匯表。
- copy_X_train:布爾,默認=真
如果為 True,則將訓練數據的持久副本存儲在對象中。否則,隻存儲對訓練數據的引用,如果數據被外部修改,這可能會導致預測發生變化。
- random_state:int、RandomState 實例或無,默認=無
確定用於初始化中心的隨機數生成。傳遞 int 以獲得跨多個函數調用的可重現結果。請參閱詞匯表。
- multi_class:{‘one_vs_rest’, ‘one_vs_one’},默認='one_vs_rest'
指定如何處理多類分類問題。支持‘one_vs_rest’ 和‘one_vs_one’。在‘one_vs_rest’中,為每個類安裝一個二元高斯過程分類器,經過訓練將此類與其他類分開。在‘one_vs_one’中,為每一對類安裝一個二元高斯過程分類器,該分類器經過訓練以分離這兩個類。這些二元預測器的預測被組合成多類預測。請注意,‘one_vs_one’ 不支持預測概率估計。
- n_jobs:整數,默認=無
用於計算的作業數量:並行計算指定的多類問題。
None
表示 1,除非在joblib.parallel_backend
上下文中。-1
表示使用所有處理器。有關詳細信息,請參閱詞匯表。
- base_estimator_:
Estimator
實例 使用觀察到的數據定義似然函數的估計器實例。
kernel_
內核實例返回基本估計器的內核。
- log_marginal_likelihood_value_:浮點數
self.kernel_.theta
的log-marginal-likelihood- classes_:形狀類似數組 (n_classes,)
唯一的類標簽。
- n_classes_:int
訓練數據中的類數
- n_features_in_:int
擬合期間看到的特征數。
- feature_names_in_:ndarray 形狀(
n_features_in_
,) 擬合期間看到的特征名稱。僅當
X
具有全為字符串的函數名稱時才定義。
- base_estimator_:
參數:
屬性:
例子:
>>> from sklearn.datasets import load_iris >>> from sklearn.gaussian_process import GaussianProcessClassifier >>> from sklearn.gaussian_process.kernels import RBF >>> X, y = load_iris(return_X_y=True) >>> kernel = 1.0 * RBF(1.0) >>> gpc = GaussianProcessClassifier(kernel=kernel, ... random_state=0).fit(X, y) >>> gpc.score(X, y) 0.9866... >>> gpc.predict_proba(X[:2,:]) array([[0.83548752, 0.03228706, 0.13222543], [0.79064206, 0.06525643, 0.14410151]])
相關用法
- Python sklearn GaussianProcessRegressor用法及代碼示例
- Python sklearn GaussianNB用法及代碼示例
- Python sklearn GaussianRandomProjection用法及代碼示例
- Python sklearn GaussianMixture用法及代碼示例
- Python sklearn GammaRegressor用法及代碼示例
- Python sklearn GradientBoostingRegressor用法及代碼示例
- Python sklearn GridSearchCV用法及代碼示例
- Python sklearn GroupShuffleSplit用法及代碼示例
- Python sklearn GraphicalLassoCV用法及代碼示例
- Python sklearn GroupKFold用法及代碼示例
- Python sklearn GradientBoostingClassifier用法及代碼示例
- Python sklearn GenericUnivariateSelect用法及代碼示例
- Python sklearn GraphicalLasso用法及代碼示例
- Python sklearn jaccard_score用法及代碼示例
- Python sklearn WhiteKernel用法及代碼示例
- Python sklearn CalibrationDisplay.from_predictions用法及代碼示例
- Python sklearn VotingRegressor用法及代碼示例
- Python sklearn gen_batches用法及代碼示例
- Python sklearn ExpSineSquared用法及代碼示例
- Python sklearn MDS用法及代碼示例
- Python sklearn adjusted_rand_score用法及代碼示例
- Python sklearn MLPClassifier用法及代碼示例
- Python sklearn train_test_split用法及代碼示例
- Python sklearn RandomTreesEmbedding用法及代碼示例
- Python sklearn log_loss用法及代碼示例
注:本文由純淨天空篩選整理自scikit-learn.org大神的英文原創作品 sklearn.gaussian_process.GaussianProcessClassifier。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。