본문 바로가기

Python (Linux)46

42. Python - 5장 연습문제 1. 서포트 벡터 머신의 근본 아이디어는 무엇인가요?#서포트 벡터 머신의 근본적 아이디어는 클래스 사이에 가능한 가장 넓은 '도로'를 내는 것입니다.다시 말해 두 클래스를 결정 경계와 샘플 사이의 마진을 가능한 가장 크게 하는 것이 목적입니다.소프트 마진 분류를 수행할 때는 SVM이 두 클래스를 완벽하게 나누는 것과 가장 넓은 도로를 만드는 것 사이에 절충안을 찾습니다. (즉, 몇 개의 샘플은 도로 안에 있을 수 있습니다.) 또 하나의 핵심적인 아이디어는 비선형 데이터셋에서 훈련할 때 커널 함수를 이용하는 것입니다. 2. 서포트 벡터가 무엇인가요?#서포트 벡터는 SVM이 훈련된 후에 경계를 포함해 도로에 놓인 어떤 샘플입니다. 결정 경계는 전적으로 서포트 벡터에 의해 결정됩니다. 서포트 벡터가 아닌 (즉.. 2019. 2. 10.
41. Python - SVM 이론 2 오늘은 SVM 이론의 두 번째 파트를 공부해보겠습니다. [쌍대 문제] 원 문제(Primal problem)라는 제약이 있는 최적화 문제가 주어지면 쌍대 문제(dual problem)라고 하는 깊게 관련된 다른 문제로 표현할 수 있습니다. 일반적으로 쌍대 문제 해는 원 문제 해의 하한값이지만, 어떤 조건 하에서는 원 문제와 똑같은 해를 제공합니다.다행히도, SVM 문제는 이 조건을 만족시킵니다. (목적 함수가 볼록 함수이고, 부등식 제약 조건이 연속 미분 가능하면서 볼록 함수입니다.) 따라서 원 문제 또는 쌍대 문제 중 하나를 선택하여 풀 수 있습니다.(LinearSVC, LinearSVR의 매개변수 dual의 기본값 True를 False로 변경하면 원 문제를 선택하고, SVC, SVR은 쌍대 문제만 풉니.. 2019. 2. 10.
40. Python - SVM 이론 1 안녕하세요? 오늘은 SVM 이론에 대해 공부해봅시다.. 저자는 이번 SVM이론은 깊이 알려는 사람한테 좋고, 처음 접하는 사람은 넘어가도 좋다는데요!..그래도 알아둬서 나쁠 건 없죠! 먼저, 표기법을 정리합니다. 4장에서 편향과 입력 특성의 가중치 까지 전체 모델 파라미터를 하나의 벡터 에 넣는다고 했습니다.그리고 모든 샘플에 편향에 해당하는 입력값 을 추가합니다. 이 장에서는, SVM을 다룰 때 조금 더 편리한(그리고 더 일반적인) 다른 표기법을 사용하겠습니다.편향을 b라 하고, 특성의 가중치 벡터를 라 하겠습니다. 따라서 입력 특성 벡터에 편향을 위한 특성이 추가되지 않습니다. [결정 함수와 예측]선형 SVM 분류기 모델은 단순히 결정 함수 를 계산해서 새로운 샘플 x의 클래스를 예측합니다. 결괏값이.. 2019. 2. 8.
39. Python - SVM 회귀 오랜만에 명절이 지나서야 포스팅하네요~오늘은 SVM 회귀에 대해 공부합니다..앞선 포스팅이 모두 기억나진 않지만, SVM 알고리즘은 다목적으로 사용할 수 있습니다.선형, 비선형 분류 뿐만 아니라, 선형, 비선형 회귀에도 사용할 수 있습니다. 회귀에 적용하는 방법은, 목표를 반대로 하는 것입니다.일정한 마진 오류 안에서, 두 클래스 간의 도로 폭이 가능한 한 최대가 되도록 하는 대신,SVM 회귀는 제한된 마진 오류(즉, 도로 밖의 샘플) 안에서 도로 안에 가능한 한 많은 샘플이 들어가도록 학습합니다.도로의 폭은 epsilon 하이퍼파라미터로 조절합니다. 아래는 무작위로 선형 데이터셋을 생성하고, 훈련시킨 두 개의 SVM 선형 회귀 모델입니다.하나는 마진을 크게 (epsilon = 1.5), 다른 하나는 마.. 2019. 2. 7.