本文簡要介紹python語言中 sklearn.gaussian_process.GaussianProcessRegressor
的用法。
用法:
class sklearn.gaussian_process.GaussianProcessRegressor(kernel=None, *, alpha=1e-10, optimizer='fmin_l_bfgs_b', n_restarts_optimizer=0, normalize_y=False, copy_X_train=True, random_state=None)
高斯過程回歸 (GPR)。
該實現基於[1]的算法2.1。
除了標準 scikit-learn 估計器 API 之外,
GaussianProcessRegressor
:允許在沒有事先擬合的情況下進行預測(基於先驗 GP)
提供了一種額外的方法
sample_y(X)
,它評估在給定輸入處從 GPR(先驗或後驗)抽取的樣本公開了一個方法
log_marginal_likelihood(theta)
,該方法可以在外部用於其他選擇超參數的方法,例如,通過馬爾可夫鏈蒙特卡羅。
在用戶指南中閱讀更多信息。
- kernel:內核實例,默認=無
指定 GP 協方差函數的內核。如果 None 被傳遞,內核
ConstantKernel(1.0, constant_value_bounds="fixed" * RBF(1.0, length_scale_bounds="fixed")
用作默認值。請注意,除非邊界標記為“fixed”,否則在擬合期間會優化內核超參數。- alpha:float 或 ndarray 形狀 (n_samples,),默認 = 1e-10
在擬合期間添加到核矩陣對角線的值。這可以通過確保計算值形成正定矩陣來防止擬合過程中出現潛在的數值問題。它也可以解釋為額外的高斯測量噪聲對訓練觀察的方差。請注意,這與使用
WhiteKernel
不同。如果傳遞一個數組,它必須具有與用於擬合的數據相同的條目數,並用作datapoint-dependent 噪聲級別。允許將噪聲級別直接指定為參數主要是為了方便並與Ridge
保持一致。- optimizer:“fmin_l_bfgs_b” 或可調用,默認=”fmin_l_bfgs_b”
可以是用於優化內核參數的內部支持的優化器之一,由字符串指定,也可以是作為可調用傳遞的外部定義的優化器。如果傳遞了可調用對象,則它必須具有簽名:
def optimizer(obj_func, initial_theta, bounds): # * 'obj_func': the objective function to be minimized, which # takes the hyperparameters theta as a 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
意味著執行了一次運行。- normalize_y:布爾,默認=假
是否通過移除均值並縮放到 unit-variance 來規範化目標值
y
。對於使用zero-mean、unit-variance 先驗的情況,建議使用此方法。請注意,在此實現中,標準化在報告 GP 預測之前被反轉。- copy_X_train:布爾,默認=真
如果為 True,則將訓練數據的持久副本存儲在對象中。否則,隻存儲對訓練數據的引用,如果數據被外部修改,這可能會導致預測發生變化。
- random_state:int、RandomState 實例或無,默認=無
確定用於初始化中心的隨機數生成。傳遞 int 以獲得跨多個函數調用的可重現結果。請參閱詞匯表。
- X_train_:形狀類似數組 (n_samples, n_features) 或對象列表
訓練數據的特征向量或其他表示(預測也需要)。
- y_train_:形狀為 (n_samples,) 或 (n_samples, n_targets) 的類似數組
訓練數據中的目標值(預測也需要)。
- kernel_:內核實例
用於預測的內核。內核的結構與作為參數傳遞的相同,但具有優化的超參數。
- L_:形狀類似數組 (n_samples, n_samples)
X_train_
中內核的下三角 Cholesky 分解。- alpha_:形狀類似數組 (n_samples,)
核空間中訓練數據點的對偶係數。
- log_marginal_likelihood_value_:浮點數
self.kernel_.theta
的 log-marginal-likelihood 。- n_features_in_:int
擬合期間看到的特征數。
- feature_names_in_:ndarray 形狀(
n_features_in_
,) 擬合期間看到的特征名稱。僅當
X
具有全為字符串的函數名稱時才定義。
參數:
屬性:
參考:
例子:
>>> from sklearn.datasets import make_friedman2 >>> from sklearn.gaussian_process import GaussianProcessRegressor >>> from sklearn.gaussian_process.kernels import DotProduct, WhiteKernel >>> X, y = make_friedman2(n_samples=500, noise=0, random_state=0) >>> kernel = DotProduct() + WhiteKernel() >>> gpr = GaussianProcessRegressor(kernel=kernel, ... random_state=0).fit(X, y) >>> gpr.score(X, y) 0.3680... >>> gpr.predict(X[:2,:], return_std=True) (array([653.0..., 592.1...]), array([316.6..., 316.6...]))
相關用法
- Python sklearn GaussianProcessClassifier用法及代碼示例
- 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.GaussianProcessRegressor。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。