머신러닝 with R
-
[R 데이터분석] k - 평균(k-means) 군집 분석머신러닝 with R 2019. 9. 2. 16:15
k-평균(k-means algorithm) 군집 분석이란? 주어진 데이터를 k 개의 클러스터(군집)로 묶는 알고리즘 "k"는 각 데이터 점들의 서로에 대한 유사성을 기초로 한 고정된 수(k)의 군집을 찾는 다는 것을 의미함 각 클러스터간의 거리 차이의 분산을 최소화 EM 알고리즘을 이용한 클러스터링과 비슷한 구조를 가짐 K-평균 알고리즘의 3단계 1) 임의로 k개의 데이터 포인트를 시드로 선택 2) 각각의 레코드를 가장 가까운 시드에 배정하여 묶음. (각 개체들과 시드 간의 거리를 구함) 3) 군집의 중심점을 찾아감 → 군집의 중심점이 다음 2단계에서 시드가 됨. → 2와 3 단계가 계속 반복됨. → 군집의 경계가 더 이상 변하지 않을 때까지 계속 됨. k-평균 알고리즘의 예시 1) 프로세스 1: 군집수..
-
[R 데이터 분석] 계층적 군집분석머신러닝 with R 2019. 8. 31. 15:13
계층적 군집분석(Hierarchical Clustering)이란? 계층적 트리 모형을 이용해 개별 개체들을 순차적, 계층적으로 유사한 개체 내지 그룹과 통합하여 군집화를 수행하는 알고리즘이다. K-평균 군집과 달리 군집 수를 사전에 정의하지 않고, 학습 이후 군집수를 선택한다. 개체들이 결합되는 순서는 덴드로그램(Dendrogram)으로 시각화할 수 있어, 덴드로그램을 만들고 적절하게 트리를 잘라 군집을 나눌 수 있다. 어떻게 만들 수 있을까? 2) 가장 가까운 집단 찾기 거리는 수가 작을 수록 가깝고 클수록 멀다. -> A와 D의 거리가 2로 가장 가깝고, B와 D의 거리가 가장 멈 가장 가까운 집단을 묶는다. -> A와 D를 하나로 묶어줌. 그렇다면 나머지 값들과의 거리는?? 어떻게 할 것인가? 3)..
-
[R 데이터 분석] 군집분석의 이해 :: 군집을 묶는 기준 '거리' / 군집분석의 평가머신러닝 with R 2019. 8. 30. 16:54
군집 분석이란 모집단 또는 범주에 대한 사전 정보가 없는 경우에 주어진 관측값(레코드)들 사이의 거리 또는 유사성을 이용하여 전체를 몇개의 집단으로 나누는 분석이라고 할 수 있다 . 쉽게 말해 하나의 집단을 특성이 유사한 몇 개의 세부 집단으로 나누는 것이다. 위 사진을 보면 군집 분석에 대해 확실히 감을 잡을 수 있다. 중고등학생 시절을 되돌아 보면, 교탁앞에는 공부를 열심히하는 친구들이 주로 앉고, 뒷쪽 구석에는 공부에 관심없는 친구들이 모여 앉곤 한다. 이렇게 비슷한 성향의 사람들이 모여 앉아 그룹을 만드는데 군집 분석도 마찬가지로 주어진 개체를 비슷한 속성끼리 그룹화 시키는 것이다. 이렇게 세부적으로 그룹화 시키게 되면 , 각 집단의 성격을 파악하기 쉽고, 데이터 전체의 구조에 대한 이해를 도울 ..
-
R과 기초통계 - 좋은 회귀 모형? 회귀분석의 확장 LASSO머신러닝 with R 2019. 8. 24. 17:43
회귀분석을 쓰는 이유 두개의 포스팅을 통해 회귀분석을 공부해 보았다. 회귀분석을 사용 하는 이유는 무엇일까? 두 가지로 정리할 수 있는데 간단히 '해석'과 '예측' 을 위해서 사용한다고 할 수 있다. 해석: 회귀식을 통해 입력 변수들이 목표 변수에 미치는 영향력을 측정 예측: 입력변수를 통해 목표 변수를 예측 해석 필요 없이 예측만을 위한 모델: random forest, kenel machine, deep learning... 좋은 회귀 모형이란? 또 한가지 생각해 봐야할 부분은 좋은 회귀 모형은 과연 어떤 것인가에 대한 것이다. 바로 "가장 적은 수의 독립변수로 종속 변수의 분산을 가장 많이 설명할 수 있는 모형" 이다. 하지만 100개의 입력변수로 95% 설명한 모형과 10개의 입력변수로 80%를 ..
-
R 기초 통계/ 로지스틱 회귀 분석 (Logistic Regression)이란?머신러닝 with R 2019. 8. 23. 21:01
회귀분석의 한계점 데이터를 분석할 때 목표 변수가 이분형인 분류 문제가 있을 수 있다. 예를 들어 고객 이탈, 응답여부, 부도 여부, 구매 여부 등등 yes 혹은 no로 분류해야 할 경우이다. x 변수: 월수입 y 변수: 어떤 상품에 대한 구입 여부(1 = 구입/ 0 = 구입하지 않음) 이때, 우리는 예측값(y)으로 이산형을 얻어야 하지만, 단순 회귀분석을 적용한다면 예측값이 이산형이 나올 수 없다. 단순 회귀분석은 선형식으로 나오기 때문에 식에 따라 음수가 나올 수도 있고, 1보다 큰 숫자들이 나올 수 있다. 즉, y 에 대한 확률분포가 선형 회귀모형에서 가정되는 확률 분포가 아니다. 그렇다면 어떻게 해결해야 할까? 종속변수를 확률값 P로 가정하여 결과를 예측해야 한다. P는 확률 값이기 때문에 0~1..
-
R 기초 통계 / 회귀 분석이란? (상관분석, 설명력, 다중공선성)머신러닝 with R 2019. 8. 22. 20:36
회귀분석이 쓰이는 이유? 가장 기본적인 분석으로 모형의 결과가 선형 1차 방정식으로 매우 단순하고 매우 잘 맞는다. 입력 변수의 회귀 계수를 이용해 각 변수들의 영향력을 쉽게 파악할 수 있어 매우 투명하다 데이터가 적더라도 모형을 만들 수 있으며 데이터가 많더라도 모형을 만드는데 시간이 오래 걸리지 않는다. 하지만 선형적이지 않는 데이터는 선형성을 가지도록 변수를 변환해야 한다. 상관분석 상관분석(correlation analysis)은 x값과 y 값, 두 변수 간의 상관관계를 탐색하기 위해 사용된다. 즉 연속적인 두 변수 간에 선형 관계가 있는지 탐색 및 확인하는 방법이다. 상관 분석에서 구해지는 상관 계수 r은 두 변수의 직선적인 연관성의 정도를 나타낸다. 간단히 말해서, x가 증가하면 y도 증가하는..
-
R 머신러닝 지도학습의 모형 성능 평가머신러닝 with R 2019. 8. 7. 18:50
모형 평가 만들어진 모형의 성능을 평가할 때, 일반적으로 테스트 테이터와 훈련 데이터를 나누게 된다. 그렇다면 왜 굳이 데이터를 분할하는지에 대해서도 생각해 볼 필요가 있다. 이는 학생이 시험을 볼 때와 비슷하다. 학생이 공부를 할 때 공부한 것을 바탕으로 연습문제를 풀어본다. 그 연습문제들이 실제 시험을 볼 때 똑같이 나온다면 답만 외운 학생들이 시험을 더 잘 볼 수도 있다. 그렇기에 시험을 볼 때는 그 연습 문제가 절대 똑같이 나오지 않는다. 문제가 응용되거나 조금씩 바뀌거나 하는 등 처음 보는 문제들로 학생의 실력을 평가하는 것이다. Training Data & Test Data 머신러닝에서도 마찬가지이다. 기존에 학습하지 않았던 데이터들로 평가해야 모형의 성능을 더욱 정확하게 평가할 수 있다. 우..
-
앙상블(Ensemble) 모형 / Bagging과 boosting머신러닝 with R 2019. 7. 28. 16:16
데이터 분석에 있어서 모델링은 최적의 알고리즘을 선택함으로써 최종 모델을 도출하는 데 있어서 큰 역할을 한다. 앙상블(ensemble)이란 '함께, 동시에, 한꺼번에, 협력하여'라는 의미의 프랑스어이다. 이 의미와 같이 데이터 분석에서도 여러 개의 값을 하나로 하치는 방법을 '앙상블'이라고 말한다. 이는 모델링 기법 중에서 머신러닝에서 가장 많이 사용되고 있는 기법으로 여러 개의 분류 모형에 의한 결과를 종합하여 분류의 정확도를 높이는 방법이다. 이 모형은 여러 개의 weak leaner를 결합한다면 single learner 보다 더 나은 성능을 얻을 수 있다는 일종의 '집단 지성'으로부터 아이디어가 나왔다. 일반적으로 학습에서 나타나는 오류는 1) 지나친 치우침(bias)으로 인한 underfitti..