본문 바로가기

전체 글194

[분류 - 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.
[분류 - 3] K-Nearest Neighbors 데이터가 어떤 카테고리에 가까울지 찾는 알고리즘. 그래프 상으로 말해보면 초록점이 어느색 점에 더 가까울 것인가를 찾는 분류 기법이다. Step 1. K개의 데이터를 고른다. (일반적으로 K=5이다) Step2. 새로운 데이터포인트에서 가장 가까운 K개의 데이터들을 분류한다. Step3. 새로운 데이터를 갯수가 많은 쪽으로 카테고리로 분류한다. 그냥 데이터가 어디에 더 가까운지 찾는거임...... 2022. 4. 29.
early return / else if, else 피하기 좋은 코드를 짜야하는 이유 프로그래밍은 혼자 하는 것이 아니라 다른 사람들과 함께 하는 협업이기 때문이다. 내가 쓴 코드를 나는 알아도 팀원들이 읽기 어렵다면 좋지 않은 코드이다. 또한 지금 당장 내가 쓴 코드를 알아도 시간이 흘러 나중에 본다면 잘 알지 못할 수도 있다. 그렇기 떄문에 가독성 높은 좋은 코드를 쓰도록 노력해야한다. early return // 좋지 않은 예시 function hello(input) { if (조건1) { if (조건2) { if (조건3) { return 'hello' } else { return 'bye' } } else { throw new Error('some error'); } } throw new Error('something went wrong'); } 딱 .. 2022. 4. 28.
[분류 - 2] 로지스틱 회귀 실습 dataset = dataset[3:5] (성별 제외) 나이에와 연봉에 따른 구매 회귀 예측을 해보려고 한다. Purchased 열의 0이 구매하지 않음, 1이 구매함이다. 테스트 세트와 훈련 세트틑 1:3 비율로 나누고, 스케일링을 해준다 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) training_set[-3] = scale(training_set[-3]) test_set[-3] = scale(test_set[-3]) 로지스틱 .. 2022. 4. 27.
728x90