본문 바로가기

프로그래밍/Machine Learning

(8)
[Machine Learning] Django Rest Framework를 이용한 학습, 예측 웹페이지 구성 * Page 구성 (https://honeyteacs.tistory.com/6) 참조 1. Train page - 학습 매개변수 post하여(Jason) 학습 모델링 - 앞선 글에서와 같이(https://honeyteacs.tistory.com/30) CSV 데이터를 기반으로 array 형태로 진행 - 각 모델별 매개변수 설정(KNN, RFC, GBC) 2. Predict page - 앞서 만들어진 모델들을 기반으로 예측할 데이터(Jason --> DataFrame)를 post후 예측 결과 출력 - 예측에 쓰이는 데이터는 Jason 형태로 주고 받는 Django Rest Framework 특성상 DataFrame 형태로 예측에 사용되어야함(array x)
[Machine Learning] 다차원적 학습을 위한 데이터 전처리(Target 기반) 및 모델링, 모델링 과정 추출 * DataFrame을 통한 다차원 학습 실패(단 1:1 매칭 학습 및 예측은 가능) --> 일반 arrary 형태 사용 1. 일반 array형태를 통한 다차원적 학습(KNN 학습 모델 기반) 진행 및 예시를 통한 예측 진행 - Matplotlib를 통한 모델링 과정 분석 (하나의 매개 변수의 Target값들에 대한 시각화만 가능) 2. 일반 array형태를 통한 다차원적 학습(Decision Tree 학습 모델 기반) 진행 및 예시를 통한 예측 진행 - Graphviz를 통한 트리형태의 모델링 과정 추출 (export dot --> render png) - 단, Decision Tree의 경우에는 모델링 과정 추출이 가능하지만 Random Forest, Gradient Boosting의 경우에는 모델링..
[Machine Learning] 선형 모델(Linear model) 을 이용한 예측 모델 만들기 *K-최근접 이웃 알고리즘을 이용한 모델은 예측이 느리고 많은 특성을 처리하는 능력이 부족하다. 이러한 단점이 없는 모델이 바로 선형 모델(Linear model)이다. 선형 모델(Linear model) : 각 특성에 해당하는 기울기들을 곱한 후(특성 1개당 기울기 1개를 가지게 됨) 이를 모두 더하여 예측에 사용하게 된다. 특성이 하나일 경우 직선, 두 개일 경우에는 평면, 그 이상의 평우 초 평면 형태가 된다. 1. 선형 회귀(Linear Regression, 최소제곱법) : 예측과 훈련 세트에 있는 타깃 y 사이의 평균제곱오차를 최소화하는 파라미터 w, b를 찾는 알고리즘. (평균 제곱오차 : (예측값-타깃값)^2 / 샘플의 개수 ) 1) 데이터 셋이 단순하여 과소적합인 상태 2) 데이터 셋이 복..
[Machine Learning] k-NN(KNN, k-Nearest Neighbor, k-최근접 이웃), KNN-Regression(k-최근접 이웃 회귀) 알고리즘 - 여러개의 이웃 선택하기 전에 살펴본 이웃의 개수가 1일 경우에(n_neighbors = 1), 테스트 데이터가 어떤 클래스에 속할지에 대한 예측은 단순히 테스트 데이터에 가장 가까운 훈련 데이터의 출력을 기준으로 예측하는 것이었다.(https://honeyteacs.tistory.com/12?category=688750) 하지만 이웃의 개수가 1이 아닌 여러개일(n_neighbors = k) 경우에는 각 이웃이 속하는 클래스를 따져본 후, 가장 많은 이웃이 속하는 클래스를 선택하는 방식으로 클래스를 예측하게 된다. * 이웃의 수가 적을 수록 모델은 복잡해진다. - 훈련 데이터 예측 정확도 상승, 테스트 데이터 정확도 하락 - 극단적인 경우, 최근접 이웃의 수가 하나일 경우 훈련 데이터 예측률은 100%라 할 수 있지만 테스트 ..
[Machine Learning] 지도 학습(Supervised Learning)이란? 지도 학습(Supervised Learning)이란? 앞선 '인공 지능(Artificial Intelligence), 머신 러닝(Machine Learning), 딥 러닝(Deep Learning) 란?'(https://honeyteacs.tistory.com/8)에서도 간단히 설명하였듯이 입력에 대한 출력(답)이 정해진 데이터들을 알고리즘에 학습시켜 주어진 입력에 대한 출력을 만드는 방법을 말한다. 즉, 훈련세트로부터 만들어진 모델을 통하여 새로운 데이터에 대한 정확한 출력을 예측하는 것이다. 지도 학습의 종류는 분류(classification)와 회귀(regression)로 나눌 수 있다. 1) 분류 : 두 개의 클래스로 나뉘어지는 이진 분류와 셋 이상의 클래스로 나뉘어지는 다중 분류로 나눌 수 있다..
[Machine Learning] k-NN(KNN, k-Nearest Neighbor, k-최근접 이웃) 알고리즘을 활용한 머신러닝 모델 만들기 k-NN(KNN, K-Nearest Neighbor, k-최근접 이웃 알고리즘) : 새로운 데이터가 주어졌을 때, 훈련 데이터(training set)에서 새로운 데이터에 가장 가까운 k개의 이웃을 찾는 알고리즘 싸이킷런(scikit-learn)에서의 k-Nearest Neighbor 알고리즘은 neighbors 모듈 아래 KNeighborsClassifier 클래스에 구현되어있다. 따라서 K-Nearest Neighbor 알고리즘은 KNeighborsClassifier 클래스를 통해 객체를 만들어 사용할 수 있는데, 이때 매개변수로 찾고자 하는 이웃의 개수(n_neighbors)를 지정해 줄 수 있다. (아래의 경우 편의를 위하여 n_neigbors의 값을 1로 지정) 다음으로 앞서 생성하였던 훈련 데..
[Machine Learning] 머신러닝 알고리즘(Machine Learning Algorithm) 적용에 앞선 데이터 분석 데이터 셋(dataset)을 대상으로 머신러닝 알고리즘(지도 학습(Supervised Learning))을 적용하기에 앞서 다음 세 가지를 평가해야 한다. (인공 지능(Artificial Intelligence),머신 러닝(Machine Learning),딥 러닝(Deep Learning) 이란?: https://honeyteacs.tistory.com/8) 1. 해당 데이터 셋이 가지고 있는 키 값들(keys)이 무엇인지 2. 해당 데이터 셋 중 어느 것들을 머신러닝 모델을 만드는데 사용할 training set으로 사용할 것이며, 어느 것들을 모델이 잘 작동하는지를 평가하는 test set으로 사용할 것인지 3. training set을 기반으로한 출력값(클래스)들이 training set의 특성들에..
[Machine Learning] 인공 지능(Artificial Intelligence), 머신 러닝(Machine Learning), 딥 러닝(Deep Learning) 이란? 인공 지능 (Artificial Intelligence) 머신 러닝과 딥 러닝을 포괄하는 개념으로서, 인간만이 할 수 있다고 믿었던 생각과 행동들을 컴퓨터가 수행하게 하는 것을 목표로 하는 일련의 소프트웨어, 논리, 사고 등을 말한다. 매우 포괄적인 의미를 지니며 특정 기술 분야의 이름이 아니라 지능적인 요소를 가진 모든 것들을 말하기도 한다. 머신 러닝 (Machine Learning) 인공지능 분야의 일부로서, 기계학습이라고도 불린다. 기계(컴퓨터)가 직접 데이터를 학습하여 새로운 데이터가 주어졌을 때, 이를 학습된 모델을 기반으로 평가를 하는 것을 뜻한다; 데이터로부터 지식을 추출하는 작업 (데이터를 이용한 모델링 기법) 머신 러닝은 출력(답)이 주어지는가 아닌가에 따라 두 가지 유형으로 존재한다...