본문 바로가기
반응형

분류 전체보기39

[Simulation] SimPy 패키지로 스타벅스 예제 만들기 (1) 이번 시간에는 스타벅스 시뮬레이션 예제를 만들어보며 SimPy 패키지 활용법을 알아보고자 한다. * 그냥 카페 시뮬레이션인데, 스타벅스 예제라고 이름 붙였다. (●'◡'●) 1. Python SimPy 패키지 프로세스 기반의 이산-이벤트 시뮬레이션(discrete-event simulation) 모델을 생성할 수 있는 Python 패키지이며, 기존 다른 패키지처럼 pip로 설치가 가능하다. 시뮬레이션을 위한 가상환경을 구성하고 설치를 해 주는 것이 좋다. 관련 내용은 아래의 SimPy document 페이지를 참고하면 된다. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2. Starbucks-01 시뮬레이션 예.. 2021. 8. 29.
[머신러닝] GMM(Gaussian Mixture Model) 군집화 GMM(Gaussian Mixture Model) 군집화 알고리즘 : 데이터가 여러 다른 모양의 가우시안 분포(Gaussian Distribution)로 결합되어 있다는 가정 하에 개별 데이터를 동일한 가우시안 분포별로 묶어주는 비지도 학습 알고리즘이다. 기하학적인 모양의 군집, 서로 겹치는 군집에 대해서도 클러스터링이 잘 수행된다. (K-Means 군집화 알고리즘의 한계점을 보완) 개별 데이터 포인트에 대해 각 정규 분포(가우시안 분포)에 속할 확률을 계산하여 할당하고, 최대 우도 추정법으로 개별 정규 분포의 평균과 분산 추정을 반복하며 학습이 진행된다. 이 시간에는 GMM 알고리즘 수행 단계를 정리해보고자 한다. 👀 GMM 알고리즘 수행 단계 GMM 알고리즘은 '예측(Expectation)'과 '최대.. 2021. 8. 19.
[머신러닝] 클러스터링 평가지표 - 실루엣 계수(2) 이전 포스팅에서 실루엣 계수를 구하는 방법과 평가지표로써의 장단점을 알아보았다. 2021.06.15 - [머신러닝] - [머신러닝] 클러스터링 평가지표 - 실루엣 계수 (1) [머신러닝] 클러스터링 평가지표 - 실루엣 계수 (1) 실루엣 계수(Silhouette Coefficient) : 각 데이터 포인트와 주위 데이터 포인트들과의 거리 계산을 통해 값을 구하며, 군집 안에 있는 데이터들은 잘 모여있는지, 군집끼리는 서로 잘 구분되는지 클러 studying-haeung.tistory.com 이 시간에는 Python 코드로 실루엣 계수를 시각화해보고, 그 의미에 대해서 알아볼 것이다. 0. Yellowbrick 라이브러리 실루엣 계수 시각화를 위해 Yellowbrick이라는 python 라이브러리를 활용하.. 2021. 7. 21.
[머신러닝] 클러스터링 평가지표 - 실루엣 계수 (1) 실루엣 계수(Silhouette Coefficient) : 각 데이터 포인트와 주위 데이터 포인트들과의 거리 계산을 통해 값을 구하며, 군집 안에 있는 데이터들은 잘 모여있는지, 군집끼리는 서로 잘 구분되는지 클러스터링을 평가하는 척도로 활용된다. * 참고한 논문의 표현을 빌리자면, 군집 내 비유사성('within' dissimilarities)은 작고, 군집 간 비유사성('between' dissimilarities)은 커야 생성된 클러스터의 품질이 좋다고 할 수 있다. 이번 포스팅에서는 실루엣 계수를 구하는 방법과 평가 지표로써의 장단점에 대해 알아보고자 한다. 실루엣 계수 구하는 방법 왼쪽 그림처럼 어떠한 클러스터링 기법에 의해 총 10개의 데이터 포인트들이 3개의 군집으로 나눠졌다고 하자. 클러스.. 2021. 6. 15.
[머신러닝] K-Means 군집화 K-Means 알고리즘 : 데이터 포인트들을 비슷한 속성의 그룹으로 묶어주는 비지도학습 알고리즘 중 하나이다. 'Centroid'라는 클러스터(군집)의 중심점 개념이 사용된다. 데이터 포인트들과 Centroid들 간 거리 계산을 통해 Centroid들의 위치가 재설정되며 학습이 진행된다. 이 시간에는 K-Means 알고리즘 수행 단계를 간단히 정리해보고자 한다. K-Means 알고리즘 수행 단계 '초기화', '학습', '새로운 데이터에 적용' 이렇게 크게 3단계로 구분할 수 있다. 1. 초기화 사용자가 처음 정하는 아래 2개 항목은 알고리즘 수행 결과에 큰 영향을 미친다. 클러스터 개수 : 최종적으로 만들고자 하는 클러스터의 개수를 정해준다. 클러스터 중심점(Centroid) 위치 설정 방법 : 중심점의.. 2021. 5. 30.
[Python] Jupyter notebook에서 .Rdata파일을 .csv 파일로 변환 Jupyter notebook에서 .Rdata형식의 파일을 읽어와야 하는 경우가 종종있다. 이 시간에는 Jupyter notebook에서 R을 사용할 수 있는 환경을 구성하고, .Rdata파일을 .csv 파일로 변환하는 방법을 알아보려고 한다. Anaconda 환경에서 Jupyter notebook을 사용하고 있다면, 아래와 같이 Anaconda Prompt에서 간단히 R 커널을 설치할 수 있다. Anaconda Prompt 창을 열고, 다음 명령어를 입력해준다. conda install -c r r-irkernel 설치 중간에 Proceed([y]/n)? 가 나오면, 'y' 입력해준다. 설치가 완료되면 아래와 같이 'R' 커널이 새롭게 생긴다. 'R' 커널에서 새로운 notebook을 열고 csv로 변.. 2021. 5. 18.
[머신러닝] S.O.M 알고리즘 (2) - MiniSom 이전 포스팅에서는 S.O.M 알고리즘의 수행 단계와 평가 지표에 대해 알아보았다. 2021.05.04 - [머신러닝] - S.O.M 알고리즘 (1) - 개념 이번에는 SOM을 numpy 기반으로 작게 구현해 놓은 MiniSom 패키지를 활용하여 클러스터링과 시각화를 해볼 것이다. 0. 실습 준비 MiniSom 패키지를 설치한다. pip을 이용하여 tensorflow라는 이름의 anaconda 가상환경에 패키지를 설치한다. * github 페이지 'examples' 폴더에서 패키지의 다양한 활용 예시 코드를 볼 수 있으며, 'minisom.py' 코드를 통해 SOM 알고리즘이 어떻게 구현되어 있는지 확인할 수 있다. 맵 시각화를 위한 bokeh 패키지를 설치한다. MiniSom과 동일한 방식으로 설치한다... 2021. 5. 12.
[머신러닝] S.O.M 알고리즘 (1) - 개념 Self-organizing map (자기조직화지도) 데이터 내 위상(topology)을 보존하면서, 고차원의 input space를 단순한 저차원의 output space로 변환 인공신경망 구조이며, error-correction learning이 아닌 competitive learning 방법 채택 각 output 노드의 weight vector와 이웃 노드 weight vector 간 거리의 평균을 표현한 U-matrix로 시각화 S.O.M 알고리즘은, 1980년대 알고리즘을 처음 발표한 Teuvo Kohonen 교수의 이름을 따서, Kohonen map이라고 부르기도 한다. Kohonen's S.O.M 알고리즘 수행 단계 1. Normalization 스케일이 큰 설명변수에 치우쳐 맵이 생성되지 .. 2021. 5. 4.
[기초통계] 다중공선성 다중공선성(Multicollinearity) : 목표변수와 2개 이상의 설명변수 간 선형관계를 분석하는 다중 회귀모델에서, 설명변수 간의 강한 상관관계로 인해 회귀모델의 회귀계수에 대한 신뢰성이 떨어지는 현상 회귀모델의 결정계수 \(R^2\) 값이 크더라도, 설명변수의 회귀계수는 유의하지 않을 때, 다중공선성을 의심해 볼 수 있다. 다중공선성 진단을 위해 다음 3가지 방법을 고려해볼 수 있다. * 쉬운 이해를 위해 Kaggle Boston Housing 데이터셋 일부에 INDUS 컬럼과 상관성이 높은 인위적인 컬럼(Artificial_V) 을 추가하여 다중공선성 진단에 활용하였다. 1. 설명변수들 쌍을 지어 산점도를 그려본다. * (ZN, DIS) (INDUS, NOX) (INDUS, DIS) (INDU.. 2021. 4. 28.
반응형