๐Ÿ˜Svm

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): ์ž๋™์œผ๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ ์„ค์ • ๋ฐ ํ•™์Šต ํ›ˆ๋ จ

์‹ค์Šต

์ฐธ๊ณ ์ž๋ฃŒ