结果
代码
import cv2
import numpy as np
# ==============1. 生成模拟数据及标签=====================
trainData = np.array([[5,6] ,[9,8],[3,8],[99,94],[89,91],[92,96]]).astype(np.float32)
tdLable = np.array([[0],[0],[0],[1],[1],[1]]).astype(np.float32)
test=np.array([[31,28]]).astype(np.float32)
#===============2. 使用KNN算法=====================
knn = cv2.ml.KNearest_create()
knn.train(trainData, cv2.ml.ROW_SAMPLE, tdLable)
ret, results, neighbours, dist = knn.findNearest(test,3)
#===============3. 显示结果=====================
print("当前数可以判定为类型:", results[0][0].astype(int))
print("距离当前点最近的3个邻居是:", neighbours)
print("3个最近邻居的距离: ", dist)
结果:
代码:
import cv2
import numpy as np
# ==============1. 生成模拟数据及标签=====================
data = np.array([[6,3] ,[4,5],[9,8],[12,12],[15,13],[18,17]]).astype(np.float32)
label = np.array([[0],[0],[0],[1],[1],[1]]).astype(np.int32)
test=np.array([[12,18]]).astype(np.float32)
# ===============2. SVM分类器=====================
svm = cv2.ml.SVM_create()
svm.train(data,cv2.ml.ROW_SAMPLE,label)
(p1,p2) = svm.predict(test)
# ============3. 显示分类结果分类==================
rv = p2[0][0].astype(np.int32)
if rv==0 :
print("当前钻石等级:乙级")
else:
print("当前钻石等级:甲级")