# Scale/ Normalize Independent Variables
X = StandardScaler().fit_transform(X)
#Split data into train an test set at 50% each
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.5, random_state=42)
gpc= GaussianProcessClassifier(1.0 * RBF(1.0), n_jobs=-1)
gpc.fit(X_train,y_train)
y_proba=gpc.predict_proba(X_test)
#classify as 1 if prediction probablity greater than 15.8%
y_pred = [1 if x >= .158 else 0 for x in y_proba[:, 1]]
上面的代码按预期运行。然而,为了解释这个模型,比如“Beta1中的1个单位变化将导致成功概率提高0.7%”,我需要能够看到theta。我该怎么做呢? 谢谢你的帮助。顺便说一句,这是一项家庭作业
答案 0 :(得分:1)
thetas
但是在文档中不清楚如何执行此操作。使用以下内容。在这里,我使用iris
数据集。
from sklearn.gaussian_process.kernels import RBF
from sklearn.gaussian_process import GaussianProcessClassifier
from sklearn.preprocessing import StandardScaler
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# Scale/ Normalize Independent Variables
X = StandardScaler().fit_transform(X)
#Split data into train an test set at 50% each
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size= .5, random_state=42)
gpc= GaussianProcessClassifier(1.0 * RBF(1.0), n_jobs=-1)
gpc.fit(X_train,y_train)
y_proba=gpc.predict_proba(X_test)
#classify as 1 if prediction probablity greater than 15.8%
y_pred = [1 if x >= .158 else 0 for x in y_proba[:, 1]]
# thetas
gpc.kernel_.theta
<强>结果:强>
array([7.1292252 , 1.35355145, 5.54106817, 0.61431805, 7.00063873,
1.3175175 ])
可以找到访问thetas
的文档中的示例HERE
希望这有帮助。
答案 1 :(得分:0)
看起来,您要查找的theta
值是您传递给分类器的内核对象的属性。您可以阅读更多in this section of the sklearn documentation。您可以使用classifier.kernel_.theta
访问分类器内核的日志转换值,其中classifier
是分类器对象的名称。
请注意,kernel object还有一个方法clone_with_theta(theta)
,如果您对theta进行修改,它可能会派上用场。