K-Nearest Neighbour trong opencv, thuật toán trí tuệ nhân tạo trong openCV, thuật toán học máy, machine learning
K-nearest neighbor (KNN) là một trong những thuật toán supervised-learning đơn giản nhất trong Machine Learning. Ý tưởng của KNN là tìm ra output của dữ kiệu dựa trên thông tin của những dữ liệu training gần nó
nhất. Để hiểu về ý tưởng của KNN thì trước hết ta xem hình ảnh dưới đây
Như bài toán đã nói ở trên, bây giờ ta sẽ thực hiện phương pháp được nêu. Có 2 loại: hình vuông màu xanh: class-0 và tam giác màu đỏ: class-1. Trước hết ta tạo random 25 được phân loại thành class 0 và 1, đây chính là các điểm ban đầu như trên hình vẽ
Mọi thắc mắc các bạn có thể liên hệ fb cá nhân:
Tham ra groups học cntt để thảo luận:
Machine Learning, học máy, trí tuệ nhân tạo và xử lý ảnh, xử lý ảnh cơ bản, xử lý ảnh nâng cao, nhận dạng ảnh,
Nguồn: https://aipcrquebec2010.org
Xem thêm bài viết khác: https://aipcrquebec2010.org/giao-duc
Xem thêm Bài Viết:
- Bật mí cách tạo mục lục trong word 2016 trong “một nốt nhạc”
- Toán học lớp 9 – Bài 2 – Đồ thị hàm số y = ax^2 ( a # 0 ) – Tiết 3
- Xác định kết quả kinh doanh bài tập 1
- [ÔN THI THPT QUỐC GIA 2019] MÔN VĂN: Chuyên đề 6 – Giải mã 5 bài thơ Ngữ Văn lớp 12
- Thủy Ngân độc hại ra sao và những chất độc nhất thế giới
error: OpenCV(4.2.0) C:projectsopencv-pythonopencvmodulesmlsrcdata.cpp:296: error: (-215:Assertion failed) (layout == ROW_SAMPLE && responses.rows == nsamples) || (layout == COL_SAMPLE && responses.cols == nsamples) in function 'cv::ml::TrainDataImpl::setData'
mik làm y hệt mà bị lỗi ntn mà kb cách fix sao 🙁
quá hay
anh co the noi them ve ham .train không ạ
em code chay để tìm láng giềng luôn, mọi người tham khảo ạ :
import cv2
import matplotlib.pyplot as plt
import numpy as np
import math
train = np.random.randint(0,100,(25,2))
color = np.random.randint(0,2,(25,1))
new = np.random.randint(0,100,(1,2))
yellow = train[color.ravel()==1]
blue = train[color.ravel()==0]
plt.scatter(blue[:,0],blue[:,1],50,'blue','o')
plt.scatter(yellow[:,0],yellow[:,1],50,'yellow','o')
a = []
b = []
for i in range(len(yellow)-1) :
a.append(math.sqrt(math.pow(new[0,0]-yellow[i,0],2)+math.pow(new[0,1]-yellow[i,1],2)))
for i in range(len(blue)-1) :
b.append(math.sqrt(math.pow(new[0,0]-blue[i,0],2)+math.pow(new[0,1]-blue[i,1],2)))
i = j = ansy = ansb = 0
a.sort()
b.sort()
for x in range(5) :
if a[i] < b[j] :
ansy+=1
i+=1
else :
ansb+=1
j+=1
if ansy > ansb :
plt.text(0,109,'Thuộc gia đình Yelowwww', bbox=dict(facecolor='yellow', alpha=0.5))
plt.text(44,109,'Số lượng : ')
plt.text(59,109,ansy)
styley = 'solid'
styleb = 'dotted'
else :
plt.text(0,109,'Thuộc gia đình Blueeeee', bbox=dict(facecolor='blue', alpha=0.5))
plt.text(39,109,'Số lượng : ')
plt.text(56,109,ansb)
styley = 'dotted'
styleb = 'solid'
plt.ylabel('Do Quoc Viet ',color = 'red')
for x in range (ansy) :
for i in range (len(yellow)-1) :
if math.sqrt(math.pow(new[0,0]-yellow[i,0],2)+math.pow(new[0,1]-yellow[i,1],2)) == a[x] :
plt.plot([new[0,0],yellow[i,0]],[new[0,1],yellow[i,1]],color ='yellow',linestyle = styley)
for x in range (ansb) :
for i in range (len(blue)-1) :
if math.sqrt(math.pow(new[0,0]-blue[i,0],2)+math.pow(new[0,1]-blue[i,1],2)) == b[x] :
plt.plot([new[0,0],blue[i,0]],[new[0,1],blue[i,1]],color = 'blue',linestyle=styleb)
plt.scatter(new[:,0],new[:,1],400,'red','*')
plt.show()
god ra them video nhe ban ^^
Anh Sơn ơi em mới học về ML. Cái KNN chỉ lưu trữ các điểm rồi so sánh với newMember bằng for thôi hay là còn làm gì khác ạ? Anh đừng giận nếu em hỏi ngu quá nha .-.
Vậy theo anh thì số K bằng bao nhiêu mới cho ta kết quả chính xác nhất ? Em thấy các video của anh rất hữu ích mong anh ra nhiều video về AI hơn. Cảm ơn anh
thank you bro
https://scontent.fsgn6-2.fna.fbcdn.net/v/t1.15752-9/34588808_2092968974312814_1350516869538250752_n.png?_nc_cat=0&_nc_eui2=AeE3fFQraFppM-hc2M8z6jukl5IMQDZyaHP0Odb0A8GY8jIbbr_co1v5qAFbGoyB9NuMWj_cs_BOAiJlDUEQ222S6FrcMNOWDYVtDT9G4wdPVQ&oh=66465916ae4d14329d22ab1c87e98606&oe=5B7E5891
chào a. cho e hỏi tí về hàm knn=cv2.ml.KNearest_create() khi đưa vào bo beaglebone chạy bằng linux báo lỗi thuộc tính ".ml"
Làm cách nào chọn được k – số điểm láng giềng xét đến ạ
sao cái cv2 của e nó báo là không có thuộc tính ml a.Sơn
hay, dễ hiểu. nhưng mình có thắc mắc nếu giả sử k chẵn và neighbours cân bằng mà distance (khoảng cách tới neighbour) cũng cân bằng thì việc chọn sẽ ntn?
Nếu trước học trí tuệ nhân tạo mà bác làm thầy giáo em :((((.