SVM(Support Vector Machine) ์ ํ๋ จ๋ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ ๊ฐ์ง ๋ถ๋ฅ๋ก ๋ถ๋ฅํ๋ ๋ํ์ ์ธ ๋ถ๋ฅ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
k-NN์ predict()๋ฅผ ํธ์ถํ๋ ์์ ์ ๊ฐ ์์๋ค๊ฐ์ ๊ฑฐ๋ฆฌ ๊ณ์ฐ์ด ์์ ๋์ง๋ง,
SVM์ train() ํจ์์ ํ์ต ๋ฐ์ดํฐ์ ๋ ์ด๋ธ์ ์ ๋ฌํ๋ฉด ๊ฐ ๋ถ๋ฅ๋ฅผ ๊ตฌ๋ถํ๋ ์ ์ ์ฐพ์ ๊ทธ ์ ์ ๋ง์กฑํ๋ ๋ฐฉ์ ์์ ๊ตฌํ๊ณ ๋์ predict()ํจ์์ ์์ธก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ฉด ์ด๋ฏธ ๊ตฌํด๋์ ๋ฐฉ์ ์์ ์ ์ฉํด์ ์ด๋ค ๋ถ๋ฅ์ธ์ง ์์ธกํ๋ค. ์ด ๋ฐฉ์ ์์ ๋ชจ๋ธ(model)์ด๋ผ๊ณ ํ๊ณ ํ๋ฒ ๊ตฌํ ๋ชจ๋ธ์ ๊ณ์ํด์ ์ฌํ์ฉ์ด ๊ฐ๋ฅํ๋ค.
SVM ํจ์
-
svm = cv2.ml.SVM_create() : SVM ์๊ณ ๋ฆฌ์ฆ ๊ฐ์ฒด ์์ฑ
-
svm = cv2.ml.SVM_load(file) : ์ ์ฅํ SVM ๊ฐ์ฒด๋ฅผ ์ฝ์ด์ ์์ฑ
file : ์ ์ฅํ ํ์ผ ๊ฒฝ๋ก
-
svm.setType(type) : SVM ์๊ณ ๋ฆฌ์ฆ ํ์ ์ ํ
C_SVC : C ํ๋ผ๋ฏธํฐ๋ฅผ ์ด์ฉํ ๋ค์ค ์ํฌํธ ๋ฐฑํฐ ๋ถ๋ฅ๊ธฐ
NU_SVC : Nu ํ๋ผ๋ฏธํฐ๋ฅผ ์ด์ฉํ ๋ค์ค ์ํฌํธ ๋ฐฑํฐ ๋ถ๋ฅ๊ธฐ(SVC)
ONE_CLASS: ๋จ์ผ ๋ถ๋ฅ๊ธฐ
EPS_SVR : ์ก์ค๋ก ์ํฌํธ ๋ฒกํฐ ํฌ๊ท
NU_SVR: Nu ์ํฌํธ ๋ฒกํฐ ํ๊ท
-
svm.setKernel(kernelType=LINEAR) : ์ปค๋ ํ์ ์ ํ
CUSTOM : ์ฌ์ฉ์ ์ ์ ์ปค๋
LINEAR : ์ ํ ์ปค๋
POLY : ์ ํ ์ปค๋
-
svm.setC(val) : C_CSV, EPS_SVR์ C ํ๋ผ๋ฏธํฐ ์ค์
-
svm.setNu(val) : NU_SVC, NU_SVR์ Nu ํ๋ผ๋ฏธํฐ ์ค์
-
svm.setP(val) : EPS_SVR์ P ํ๋ผ๋ฏธํฐ ์ค์
-
svm.setGamma(val) : ์ปค๋์ ๊ฐ๋ง ๊ฐ ์ค์
-
svm.setCoef0(val) : ์ปค๋์ coeff0 ๊ฐ ์ค์
-
svm.setDegree(val) : ์ปค๋์ degree ๊ฐ ์ค์
-
svm.traniAuto(trainData, layout, label): ์๋์ผ๋ก ํ๋ผ๋ฏธํฐ ์ค์ ๋ฐ ํ์ต ํ๋ จ
์ค์ต
์ฐธ๊ณ ์๋ฃ
-
์ปค๋(Kernel)์ด๋: SVM์์ ์ปค๋์ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๋ ๋์ ์ฐจ์์ ํน์ฑ ๊ณต๊ฐ์ผ๋ก ๋ณํํ๋ ํจ์์ ๋๋ค.