본문 바로가기

AI/분류13

[분류 - 8 ] 비선형 커널 SVR 중간 과정을 정확히 이해를 잘 못해서 내가 받은 느낌만 적어보려고 한다. 왼쪽과 같은 그래프가 있고(노란점 참고), 커널 함수로 3차원 그래프를 만든다 그곳에 비스듬한 초평면을 투과시키고, 생긴 추세선의 튜브를 만들기 위해 평행한 초평면 2개를 더 만든다. 그렇게 생긴 2차원의 단면이 SVR이 되고, 이 SVR에 가까운 점들이 서포트 벡터가 된다. 2022. 4. 30.
[분류 - 7] Kernel SVM이란? 결정 경계(Decision Boundary)를 긋지 못하는 데이터에 대해서는 어떻게 해야할까? 1. 고차원으로의 매핑 제곱을 해서 분리하는 방법이다. 이런 느낌이라고 보면 된다. 그러나 이 방법은 연산에 오랜 시간이 걸리므로 그렇게 좋은 방법은 아니다. 2. 커널 트릭 식의 좌항은 초록색 점들이 모인 구역을 뜻한다. l은 초록색 점들의 중심, x는 초록색 점의 위치 벡터이다. 식이 어렵게 보이지만, 교양 수준에서 해석을 해보면 x-l즉, 초록색 점의 위치에서 중심점의 위치의 거리가 멀면 멀수록 K가 작아진단 뜻이다. 즉 K > 0인 구간에 데이터들에 대해서 초록색 점으로 판단하겠다는 뜻이다. σ는 원의 크기를 뜻한다. 실제로 커널은 이것보다 훨씬 다양한 종류들이 있다. 2022. 4. 30.
[분류 - 6] SVM 실습 앞의 진행과 비슷하기 때문에 코드는 더접기에 붙여넣고 생략. 더보기 # Importing the dataset dataset = read.csv('Social_Network_Ads.csv') dataset = dataset[3:5] # Encoding the target feature as factor dataset$Purchased = factor(dataset$Purchased, levels = c(0, 1)) # Splitting the dataset into the Training set and Test set # install.packages('caTools') library(caTools) set.seed(123) split = sample.split(dataset$Purchased, Spli.. 2022. 4. 30.
[분류 - 5] 서포트 벡터 머신(SVM)이란? 최근 들어서 머신러닝에서 인기가 아주 높아지고 있는 강력한 알고리즘이다. SVM은 다른 머신러닝과 비교해서 정확도가 높다고 한다. 서포트 벡터 머신은 각기 다른 분류의 두 데이터 사이에 초평면(튜브) 그린다. 보통은 훈련 두 점 사이에서 가장 마진이 큰 초평면을 선택한다. (여러 점들에게 만족하는) 그리고 이 초평면의 Positive Hyperplane과 Negativeplaned에 닿아있는 점들을 Support Vector라고 한다. 이는 이 점들에 의해 초평면이 결정되기 때문에 붙여진 이름이라고 한다. 2022. 4. 30.
[분류 - 4] K-NN 분류 실습 빠르게 훈련 세트와 테스트 세트를 나누고 스케일링까지 해준다 library(caTools) set.seed(123) split = sample.split(dataset$Purchased, SplitRatio = 0.75) training_set = subset(dataset, split == TRUE) test_set = subset(dataset, split == FALSE) # Feature Scaling training_set[-3] = scale(training_set[-3]) test_set[-3] = scale(test_set[-3]) 훈련 세트를 통해 생성된 K-NN classifier로 테스트 세트를 분류하면 아래와 같은 결과가 나온다. y_pred = knn(train = training.. 2022. 4. 29.