본문 바로가기

분류 전체보기

(116)
Git 명령어 지난 글에서는 git hub 생성과, git bash 사용법을 알아보았습니다. 이번에는 git bash를 이용하는데에 있어서 필요한 명령어들을 알아보겠습니다. 커맨드창 명령어 커맨드창 화면 초기화 Ctrl + L 명령어 맨 앞/뒤 로 이동 Ctrl + A / Ctrl + E 디렉토리 이동 cd {...} 디렉토리 생성 mkdir {...} 디렉토리 삭제 git rm -r {...} 디렉토리 목록 조회 (2가지) dir / ls 파일 내용 조회 cat {...} 파일목록 조회 ll 리모트 저장소 연결 리모트 저장소에 Git hub 원격저장소 연결정보 추가 git remote add origin 현재 디렉토리에 git 저장소 생성하기 git init 리모트 저장소 연결정보 조회 git remote show ..
Git hub Repository 생성 및 Git bash 알아보기 이번 글에서는 코드를 올리고, 코드를 다운받을 수 있는 깃허브(Git hub)에 대해서 작성해보겠습니다. 우선 Git hub의 계정을 생성합니다. https://github.com/ Build software better, together GitHub is where people build software. More than 40 million people use GitHub to discover, fork, and contribute to over 100 million projects. github.com 위 사이트에 들어가 Sign up을 선택합니다. 이후 가지고 있는 이메일을 입력하여 가입을 합니다. 로그인을 하면 1시방향에 있는 +버튼을 눌러줍니다. 이후 New repository를 눌러 앞으로 ..
클래스 불균형 구분할 각 분류에 해당하는 데이터의 비율이 반반이 아닌 경우 훈련 데이터 내 비율이 높은 분류 쪽으로 결과를 내놓는 모델을 만들게 될 수 있다. 이런 상황을 클래스 불균형(Class Imbalance)이라고 한다. 이 절에서는 클래스 불균형의 예와 해결 방법을 알아본다. 예를 들어, 다음의 유방암 데이터를 보자. > library(mlbench) > data(BreastCancer) > table(BreastCancer$Class) benign malignant 458 241 유방암 데이터의 양성(benign)의 수는 458, 악성(malignant)의 수는 241이다. 이 데이터로 기계 학습 모델을 만들면 주어진 입력에 대해 benign을 결과로 줄 확률이 malignant를 줄 확률에 비해 높아진다...
서포트 벡터 머신 서포트 벡터 머신(SVM, Support Vector Machine)은 서로 다른 분류에 속한 데이터 간에 간격이 최대가 되는 선(또는 평면)을 찾아 이를 기준으로 데이터를 분류하는 모델이다. 서포트 벡터 머신 모델 그림 10-10에 서포트 벡터 머신의 개념을 그림으로 나타냈다. 흰색 원과 검은색 원은 서로 다른 분류를 뜻한다. 서포트 벡터 머신은 각 분류에 속하는 데이터로부터 같은 간격으로, 그리고 최대로 멀리 떨어진 선 또는 평면을 찾는다. 이러한 선 또는 평면을 최대 여백 초평면(Maximum Margin Hyperplane)이라고 하고, 이 평면이 분류를 나누는 기준이 된다. 그림 10-10에서는 대각선 방향의 직선이 최대 여백 초평면에 해당한다. 그리고 이 직선과 가장 가까운 각 분류에 속한 점..
신경망 신경망(Neural Network)은 인간의 뇌를 본 따서 만든 모델이다. 신경망에는 뉴런을 흉내 낸 노드들이 입력층(Input Layer), 은닉층(Hidden Layer), 출력층(Output Layer)으로 구분되어 나열되어 있다. 입력층에 주어진 값은 입력층, 은닉층, 출력층 순서로 전달된다. 신경망은 예측 성능이 우수하다고 알려져 있다. 특히 은닉층에서 입력 값이 조합되므로 비선형적인 문제를 해결할 수 있는 특징이 있다. 그러나 의사 결정 나무 등의 모델과 비교해 만들어진 모델을 직관적으로 이해하기가 어렵고 수작업으로 모델을 수정하기도 어렵다. 신경망 모델 그림 10-7에 신경망 모델의 개념도를 보였다. 신경망에 입력이 주어지면 그 값은 그림 10-7에 보인 화살표를 따라 전달되어 은닉층에 도달..
의사 결정 나무 의사 결정 나무(Tree Models)는 지니 불순도(Gini Impurity) 또는 정보 이득(Information Gain) 등의 기준을 사용하여 노드를 재귀적으로 분할하면서 나무 모델을 만드는 방법이다. 의사 결정 나무는 if-else의 조건문과 같은 형식이어서 이해하기 쉽고 속도가 빠르며, 여러 가지 피처 간의 상호 작용을 잘 표현해주고 다양한 데이터 유형에 사용할 수 있다는 장점이 있다. 특히 나무 모델 중 랜덤 포레스트(Random Forest)는 꽤 괜찮은 성능을 보여주어 기계 학습 대회가 열리는 Kaggle(http://www.kaggle.com/)에서도 가장 기본이 되는 알고리즘으로 자주 제시된다. 이 절에서는 의사 결정 나무의 기본 개념을 살펴보고 rpart, ctree, randomF..
다항 로지스틱 회귀 분석 예측하고자 하는 분류가 두 개가 아니라 여러 개가 될 수 있는 경우 다항 로지스틱 회귀 분석(Multinomial Logistic Regression)을 사용한다. 이 방법의 기본 아이디어는 로지스틱 회귀 분석을 확장하는 것이다. 이 절에서는 위키피디아에 설명된 독립 바이너리 회귀의 집합에 따라 모델을 설명한다. 분류 K를 기준으로 하여 데이터가 각 분류에 속할 확률을 β_(i)X_(i)로 놓는다. 양변을 e의 지수로 하고 정리하면 다음과 같다. 확률의 합은 1이므로 위 식의 좌변과 우변을 모두 합하면 다음과 같다. 이를 정리하면 P(Yi = K를 다음과 같이 구할 수 있다. 최종적으로 i < K인 경우는 P(Yi = i)는 다음과 같다. R에서는 nnet::multinom( )을 사용해 다항 로지스틱 ..
로지스틱 회귀 모델 로지스틱 회귀 모델(Logistic Regression)은 데이터 X의 분류가 Y일 확률을 p, N일 확률을 1-p라 할 때 다음과 같은 선형 모델을 가정한다. log(p / (1-p)) = β_(0) + β_(1)X 이 식에 대한 가장 단순한 설명은 다음과 같다. β_(0) + β_(1)X는 (-∞, ∞) 값을 가질 수 있다. 그러나 우리가 예측하고자 하는 p는 분류가 Y일 확률이므로 (0, 1) 값을 가진다. 따라서 이 둘을 맞춰줄 필요가 있다. 이를 위한 첫 번째 단계는 p를 예측하는 것이 아니라 비(오즈odds)를 예측하도록 하는 것이다. p / (1-p) = β_(0) + β_(1)X (식 10-1) 이 식에서 좌변의 값은 (0, ∞) 값만 가질 수 있다. 반면 우변은 (-∞, ∞)를 가진다. ..