OpenCV 贝叶斯分类器示例
生活随笔
收集整理的這篇文章主要介紹了
OpenCV 贝叶斯分类器示例
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
代碼參考?https://github.com/mbeyeler/opencv-machine-learning/blob/master/notebooks/07.01-Implementing-Our-First-Bayesian-Classifier.ipynb
?
from sklearn import datasets
import numpy as np
from sklearn import model_selection as ms
import cv2
from sklearn import metrics
import matplotlib.pyplot as pltX, y = datasets.make_blobs(100, 2, centers=2, random_state=1701, cluster_std=2)plt.style.use('ggplot')plt.figure(figsize=(10, 6))
plt.scatter(X[:, 0], X[:, 1], c=y, s=50)X_train, X_test, y_train, y_test = ms.train_test_split(X.astype(np.float32), y, test_size=0.1
)model_norm = cv2.ml.NormalBayesClassifier_create()model_norm.train(X_train, cv2.ml.ROW_SAMPLE, y_train)
_, y_pred = model_norm.predict(X_test)metrics.accuracy_score(y_test, y_pred)def plot_decision_boundary(model, X_test, y_test):# create a mesh to plot inh = 0.02 # step size in meshx_min, x_max = X_test[:, 0].min() - 1, X_test[:, 0].max() + 1y_min, y_max = X_test[:, 1].min() - 1, X_test[:, 1].max() + 1xx, yy = np.meshgrid(np.arange(x_min, x_max, h),np.arange(y_min, y_max, h))X_hypo = np.column_stack((xx.ravel().astype(np.float32),yy.ravel().astype(np.float32)))ret = model.predict(X_hypo)if isinstance(ret, tuple):zz = ret[1]else:zz = retzz = zz.reshape(xx.shape)plt.contourf(xx, yy, zz, cmap=plt.cm.coolwarm, alpha=0.8)plt.scatter(X_test[:, 0], X_test[:, 1], c=y_test, s=200)plt.figure(figsize=(10, 6))
plot_decision_boundary(model_norm, X, y)
plt.show()
運(yùn)行結(jié)果如下:
?
總結(jié)
以上是生活随笔為你收集整理的OpenCV 贝叶斯分类器示例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算并显示HOG直方图
- 下一篇: sklearn 朴素贝叶斯分类示例