Support Vector Machine(서포트 벡터 머신)이란? 머신러닝은 지도학습과 비지도학습으로 나눠지고, 지도학습은 분류와 회귀(예측)으로 나눠진다. 우리는 이 글에서 지도학습 중 분류의 대표적인 알고리즘인 Support Vector Machine(서포트 벡터 머신)을 알아보고자 한다. 이 글에서 Support Vector Machine을 줄여서 간단히 SVM이라고 부르겠다. SVM(서포트 벡터머신)이란 한 줄로 정의 하자면 결정 경계, 즉 분류를 위한 기준 선을 정의하는 모델이다. 그래서 분류되지 않은 새로운 점이 나타나면 경계의 어느 쪽에 속하는지 확인해서 분류를 수행할 수 있게 된다. 그래서 이 결정 경계라는 걸 어떻게 정의하고 계산하는지 이해하는 게 SVM의 핵심이다. 위 그림 예시를 보면..
데이터 사이언스 메뉴얼 검색 결과
kNN(k-Nearest Neighbor)란? 머신러닝은 지도학습과 비지도학습으로 나눠지고, 지도학습은 분류와 회귀(예측)으로 나눠진다. 우리는 이 글에서 지도학습 중 분류의 대표적인 알고리즘인 kNN을 알아보고자 한다. 위 그래프에 빨간 동그라미는 A집단, 초록색 세모는 B집단으로 분류되어있다. 그리고 우린 가운데 별이 어느 집단에 속할 것인지 알아보고자 한다. 여기서 쓰이는 개념이 kNN(k-Nearest Neighbor), 즉 최근접 이웃 알고리즘이다. k의 개수 정하기 첫 번째 방법은 kNN중에 k의 개수를 정해줘야 한다. 여기서 k란 가장 가깝게 접하는 요소들을 몇개까지 볼 것인지 정해주는 것이다. 위에서는 k를 3개로 사용해주어서 A집단 2개, B집단 1개가 별에 대해 최근접 이웃인 것이다. ..
1. 모델링 기법 생존율 예측을 위해 6가지 모델을 학습시켜서 정확도가 가장 높은 것을 테스트에서 사용한다. 여기서 사용할 모델은 다음과 같다. 1. Logistic Regression : 독립변수의 선형 결합을 이용해서 사건의 발생 가능성의 예측을 위한 통계 기법 2. Decision Tree : 분류함수를 의사결정 규칙으로 이루어진 나무 형태로 그려서 나타내는 것으로 Flow chart 로 자주 사용되는 모델 3. Support Vector Machine : 주어진 데이터를 바탕으로 새로운 데이터가 어느 카테고리에 포함될지 판단하는 모델 4. Random Forest : 의사결정나무가 분산이 크다는 점을 고려해서 다수의 의사결정나무로 다양한 무작위성을 주어 학습하는 모델 5. k-Nearest Nei..
(JY) Keras 사용해보기 1. What is keras? 케라스(Keras)는 텐서플로우 라이버러리 중 하나로, 딥러닝 모델 설계와 훈련을 위한 고수준 API이다. 사용자 친화적이고 모델의 구성이 쉽기 때문에 기본 이미지 분류 및 텍스트 분�� dsbook.tistory.com 위 함수의 모델을 구성할 때 이전 글에서 완전 연결 계층의 방식으로 모델을 구성했다. 하지만 이 모델이 항상 정확한 결과를 보여준다고 할 수 없다. 만약 정확한 결과 출력이 가능하다면, softmax함수로 클래스를 분류할 때 이미지가 속하는 클래스의 확률값은 1, 그렇지 않은 클래스의 확률값은 0으로 저장될 것이다. (실제로는 0~1사이의 소숫점으로 구성된 10개의 요소를 가진 1차원 넘파이 배열이 형성된다.) 즉 오차값이 ..
자연어 처리(NLP, natural language processing)란? 자연어는 사람이 일상적으로 사용하는 언어를 의미한다. 자연어는 일반적으로 컴퓨와 같은 기계는 이해하기 힘들다. 이런 자연어를 형태소 분석, 품사 부착,구절 단위 분석 등을 통해 컴퓨터가 자연어를 이해하고 학습할 수 있게 해 주는 것을 자연어 처리라고 한다.. 다양한 자연어 처리 관련 경진 대회중 아래 링크의 경진 대회를 통해 실습을 해보려고 한다. https://www.kaggle.com/c/word2vec-nlp-tutorial Bag of Words Meets Bags of Popcorn Use Google's Word2Vec for movie reviews www.kaggle.com 위 kaggle competition의 ..
1. 데이터 전처리 데이터 분석을 할 때, 데이터 전처리 과정은 반드시 거쳐야 한다. 데이터 분석 과정 중 가장 많은 시간을 할애해야 하는 부분이 데이터 전처리다. 실제로 데이터 분석가는 업무 시간의 80% 정도를 데이터 수집과 전처리에 사용할 정도라고 하니 더 이상 데이터 전처리의 중요성에 관해서는 설명할 것도 없다. 데이터 전처리 방법으로는 결측값 처리, Feature Engineering, 이상값 처리 등이 있다. 여기서는 결측값 처리, Feature Engineering에 대해서만 다루도록 한다. 2. 결측값 처리 앞선 글에서와 같이 결측값이 있는 데이터를 그대로 모델링할 경우 예측과정에서 높은 정확도를 얻을 수 없다. 결측치를 처리하는 방법으로는 삭제와 대체가 있다. 삭제는 말 그대로 결측값이 ..
Logistic Regression(로지스틱 회귀)란? 머신러닝은 지도학습과 비지도학습으로 나눠지고, 지도학습은 분류와 회귀(예측)으로 나눠진다. 우리는 이 글에서 지도학습의 대표적인 알고리즘인 Logistic Regression을 알아보고자 한다. 위 사진에 시간에 따른 사망률의 그래프가 있다. 여러분은 이 그래프의 데이터들을 보고 선을 그어보라고 하면 어떻게 할 건가요?? 아마 전 블로그 포스팅을 봤다면 Linear Regression(선형 회귀)를 사용할 것입니다. 하지만 직선 그래프는 데이터들을 정확히 대표할 수 없습니다. 또한 사망률은 음수 일 수가 없습니다. 그리고 직선이기 때문에 시간이 음의 무한대와 양의 무한대로 갈수록, 사망률 또한 무한대와 -무한대로 갈 것입니다. 이렇게 회귀에서Line..
(JY) Keras 사용해보기 1. What is keras? 케라스(Keras)는 텐서플로우 라이버러리 중 하나로, 딥러닝 모델 설계와 훈련을 위한 고수준 API이다. 사용자 친화적이고 모델의 구성이 쉽기 때문에 기본 이미지 분류 및 텍스트 분�� dsbook.tistory.com 위 함수의 모델을 구성하고 훈련하는 과정에서 fully-connected layers, 완전연결 계층으로 모델을 구성하고 학습시켜 분류한다고 했었다. 그럼 여기서 완전연결 계층이 무엇이고, 어떤 역할을 하는지 차근차근 알아보자. model = keras.Sequential() model.add(layers.Flatten(input_shape = (28, 28)))# 1 model.add(layers.Dense(128, act..
1. What is keras? 케라스(Keras)는 텐서플로우 라이버러리 중 하나로, 딥러닝 모델 설계와 훈련을 위한 고수준 API이다. 사용자 친화적이고 모델의 구성이 쉽기 때문에 기본 이미지 분류 및 텍스트 분류에 권장되며, 실제로 텐서플로우 2.0 버전에서는 플레이스 홀더나 세션의 개념 등을 없애고 파이썬으로 작성된 케라스를 접목하여 파이썬 언어를 사용하는 개발자들의 생산성을 많이 높이기도 했다. 파이토치, CNTK 등의 많은 머신러닝 프레임워크가 있음에도 불구하고 많은 사람들이 텐서플로우를 사용하는 이유 중 하나가 바로 케라스의 존재 때문이라고 생각하기도 한다. 그럼 이 케라스를 사용하여 텐서플로우 공식 홈페이지 튜토리얼에도 나와있는 패션 mnist 이미지 분류 문제부터 접근해보자. 첫 번째 신..
1. What is Kaggle Titanic? Kaggle은 예측 모델 및 분석 대회를 하는 플랫폼이다. 일반적인 데이터 분석을 할 경우, 문제 정의부터 데이터 준비까지 각자 해결해야 한다. 그렇지만, Kaggle과 같은 사이트에서는 이런 사항이 마련되었기에 활용만 하면 된다. Machine Learning을 처음 다룰 때는 가장 다루기 쉬운 형태인 정형 데이터를 사용하는 것이 적합하다. 정형 데이터란 관계형 데이터베이스 관리 시스템(RDBMS)의 테이블에 저장된 데이터이다. 쉽게 말해, CSV 파일로 저장된 데이터를 정형 데이터라 한다. 여기서는, "Titanic: Machine Learning from Disaster"에 대한 주제로 머신러닝을 활용해서 타이타닉 호에서 생존한 승객을 예측하려 한다...
최근댓글