【发布时间】:2019-08-23 07:36:01
【问题描述】:
我现在正在从教科书 (link) 中学习数据科学,但我不太明白代码试图说明什么。
代码显示了朴素贝叶斯的工作原理,但本书没有说明发生了什么,也没有很好地解释。 我不理解的部分是最后一部分。打印结果代表什么? 这似乎是概率,但我不太明白如何看待这个。
为什么要取最后 8 个概率?这有什么原因吗?
我稍微更改了代码以在 Spyder 上使用它,因此它与链接不同。
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
from sklearn.datasets import make_blobs
x, y = make_blobs(100, 2, centers=2, random_state=2, cluster_std=1.5)
plt.scatter(x[:, 0], x[:, 1], c=y, s=50, cmap='RdBu')
from sklearn.naive_bayes import GaussianNB
model = GaussianNB()
model.fit(x, y)
rng = np.random.RandomState(0)
xnew = [-6, -14] + [14, 18] * rng.rand(2000, 2)
ynew = model.predict(xnew)
plt.scatter(x[:, 0], x[:, 1], c=y, s=50, cmap='RdBu')
lim = plt.axis()
plt.scatter(xnew[:, 0], xnew[:, 1], c=ynew, s=20, cmap='RdBu', alpha=0.1)
plt.axis(lim)
yprob = model.predict_proba(xnew)
print(yprob[-8:].round(2))
打印结果是:
[[0.89 0.11]
[1. 0. ]
[1. 0. ]
[1. 0. ]
[1. 0. ]
[1. 0. ]
[0. 1. ]
[0.15 0.85]]
有什么帮助吗?
【问题讨论】:
标签: python naivebayes