본문 바로가기

전체 글99

머신러닝 의사결정 나무(DecisionTree Classifier) - 분류 의사결정 나무(DecisionTree Classifier) - 분류 이번 실습에서는 분류 문제 해결을 위해 Iris 데이터를 사용합니다. Iris 데이터는 꽃받침 길이, 꽃받침 넓이, 꽃잎 길이, 꽃잎 넓이 네 가지 변수와 세 종류의 붓꽃 클래스로 구성되어 있습니다. iris 데이터에 대해 분류 의사결정 나무 모델을 사용하여 예측 문제를 수행해보도록 하겠습니다. 분류를 위한 의사결정 나무 예시 사진 분류 의사결정 나무를 위한 사이킷런 함수/라이브러리 from sklearn.tree import DecisionTreeClassifier : 사이킷런에 구현되어 있는 분류 의사결정 나무 모델을 불러옵니다. DecisionTreeClassifier(): 분류를 위한 의사결정 나무 모델을 정의합니다. [Model.. 2022. 5. 24.
머신러닝 의사결정 나무(DecisionTree Regressor) - 회귀 의사결정 나무(DecisionTree Regressor) - 회귀 회귀를 위한 의사결정 나무 모델을 사용해보고, 결과를 확인해보겠습니다. 특히 max_depth라고 하는, 나무의 최대 깊이를 다양하게 정의하여 모델의 학습 결과를 그래프를 통해 이해해보겠습니다. 회귀 의사결정 나무를 위한 사이킷런 함수/라이브러리 from sklearn.tree import DecisionTreeRegressor : 사이킷런에 구현되어 있는 회귀 의사결정 나무 모델을 불러옵니다. DecisionTreeRegressor(max_depth) max_depth : 트리의 최대 깊이 [Model].fit(X, y): (X, y) 데이터셋에 대해서 모델을 학습시킵니다. [Model].predict(X): X 데이터를 바탕으로 예측되.. 2022. 5. 24.
머신러닝 - 이진트리 분류기 만들기 간단한 이진트리 분류기 만들기 이번 실습에서는 연예인들의 직업, 성별, 키 데이터를 기반으로 간단한 이진트리 분류기를 구현한 후, 이를 통해 그들의 이름을 구분해보겠습니다. job, height, sex : 분류를 위한 변수 name : 분류 클래스 위의 그림과 같은 트리구조를 만들어 데이터를 분류해보겠습니다. import numpy as np import pandas as pd # 직업, 키, 성별로 이름을 구분하는 간단한 이진트리 분류기를 만들어보겠습니다. name = ['하하', '김범수', '다현', '아이유', '최민식', '김혜수'] job = ['가수', '가수' , '가수', '가수' , '배우' , '배우'] height = [171, 182, 158, 160, 177, 170] sex .. 2022. 5. 24.
머신러닝 - t-SNE t-SNE t-SNE 알고리즘은 데이터 시각화를 위해 주로 활용되는 차원 축소 알고리즘입니다. 데이터 간의 거리에 상관없이 함축적으로 표현되는 PCA와는 달리 t-SNE는 차원 축소 이후에도 가까운 데이터는 가깝게, 멀리 있는 데이터는 멀게 표현할 수 있습니다. 따라서 대용량 데이터의 시각화 즉, 구별 가능한 시각화를 위해 활용할 수 있습니다. 이번 실습에서는 주성분 분석(PCA)에서 사용한 와인 데이터를 활용하여 t-SNE 알고리즘을 사용하는 방법을 학습해보도록 하겠습니다. t-SNE를 위한 사이킷런 함수/라이브러리 from sklearn.manifold import TSNE : 사이킷런에 구현되어 있는 tsne 모델을 불러옵니다. TSNE(n_components): n_components 개수로 데이.. 2022. 5. 23.
머신러닝 - 주성분 분석(PCA) 주성분 분석(PCA) PCA를 사용하면 가장 덜 중요한 축들은 제거되고, 가장 중요한 상위 축만 남겨집니다. 이렇게 데이터 내에서 영향을 덜 주는 변수들이 사라지면, 점들 간에 가장 중요한 관계를 맺는 차원들만을 남길 수 있습니다. 예를 들어, 변수를 반으로 줄였을 때 대부분의 점들이 잘 보존된다면, 적은 정보로 값을 그대로 표현할 수 있어 데이터를 사용하기에 훨씬 효율적일 것입니다. 이번 실습에서는 2차원으로 고정한 wine data를 주성분이 있는 PCA를 사용하여 1차원으로 축소할 때 결과를 확인해보도록 하겠습니다. PCA를 위한 사이킷런 함수/라이브러리 from sklearn.decomposition import PCA : 사이킷런에 구현되어 있는 주성분 분석(PCA) 모델을 불러옵니다. PCA(.. 2022. 5. 23.
머신러닝 Clustering - K-Means VS GMM K-Means VS GMM K-Means 클러스터링은 군집화 범위가 원형입니다. 그러므로 데이터 세트의 분포가 원형에 가까울수록 효율이 높아집니다. 그러나 실제 데이터의 분포가 원형인 경우는 적습니다. 데이터의 분포가 만약 타원의 형태로 길쭉하게 늘어져 있다면 K-means 클러스터링은 해당 데이터에 대하여 제대로 군집화를 진행하기 어렵습니다. 이런 경우에는 데이터의 분포 방향에 따라 군집화를 진행하는 GMM 클러스터링을 사용하면 군집화 성능을 높일 수 있습니다. 임의의 데이터 생성 클러스터링 알고리즘을 테스트하기 위한 데이터 생성기를 사용해보겠습니다. 대표적으로 make_blobs() 를 사용합니다. 이를 이용해 타원형 분포를 가진 데이터를 만들어냅니다. 타원형 분포 데이터 생성을 위한 사이킷런 함수/.. 2022. 5. 23.
머신러닝 Clustering - Gaussian Mixture Model (GMM) Gaussian Mixture Model (GMM) Gaussian Mixture Model(GMM)을 이용한 클러스터링은 데이터가 여러 개의 정규 분포를 가지고 있다고 가정한 후 클러스터링을 진행하는 방식입니다. 여러 개의 데이터 세트가 있다면 이를 구성하는 여러 개의 정규 분포 곡선을 추출하고, 개별 데이터가 이 중 어떤 정규 분포에 속하는지 결정합니다. 또한, GMM은 K-means 클러스터링과 달리 군집 중심점(clustering center)가 없으므로 군집의 개수(K)를 정해주면 됩니다. 이번 실습에서는 동일한 iris 데이터를 가지고 GMM을 이용한 클러스터링을 수행하고, 결과를 시각화하여 확인해보겠습니다. GMM을 위한 사이킷런 함수/라이브러리 from sklearn.mixture impo.. 2022. 5. 23.
머신러닝 Clustering - K-Means 클러스터링 K-Means 클러스터링 K-Means 클러스터링은 가장 간단하고 널리 사용되는 클러스터링 알고리즘 입니다. K-Means 클러스터링은 데이터의 영역을 대표하는 Cluster-center(중심점)을 찾아가며 데이터를 클러스터에 할당합니다. 이번 실습에서는 사이킷런에 구현된 K-Means 클러스터링 모델을 불러와 클러스터링 결과를 시각화를 통해 확인해보겠습니다. K-Means 클러스터링을 위한 사이킷런 함수/라이브러리 from sklearn.cluster import KMeans: K-Means 클러스터링을 위한 모델을 불러옵니다. KMeans(init, n_clusters, random_state) : K-Means 클러스터링 모델을 정의합니다. init : 중심점 초기화 방법 설정(‘random’ 으로.. 2022. 5. 23.
머신러닝 분류 - 로지스틱 회귀(Logistic Regression) 로지스틱 회귀(Logistic Regression) 로지스틱 회귀(Logistic Regression)는 분류 문제를 위한 회귀 알고리즘으로, 0에서 1사이의 값만 내보낼 수 있도록 출력값의 범위를 수정한 분류 알고리즘입니다. 이번 시간에는 사이킷런 안에 구현되어 있는 로지스틱 회귀 호출을 통해 실제로 S자형 곡선 그래프가 출력되는지 시각화를 통해 확인해보도록 하겠습니다. 로지스틱 회귀를 위한 사이킷런 함수/라이브러리 from sklearn.linear_model import LogisticRegression : 사이킷런 안에 구현되어 있는 로지스틱 회귀를 불러옵니다. LogisticRegression() : 로지스틱 회귀 모델을 정의합니다. [Model].fit(X, y): (X, y) 데이터셋에 대해.. 2022. 5. 23.