본문 바로가기

프로그래밍/Scikit-Learn30

[Scikit-Learn] 20. K-Means 클러스터링 (feat. KMeans) Scikit-Learn(sklearn)에서는 K-Means 클러스터링 알고리즘을 수행할 수 있는 기능을 제공하는데 KMeans 클래스가 바로 오늘의 주인공이다. 이번 포스팅에서는 KMeans의 사용법을 알아보자. K-Means 클러스터링의 대한 개념은 아래 포스팅을 참고하기 바란다. 11. K-Means 클러스터링(Clustering, 군집화)에 대해서 알아보자 with Python 11. K-Means 클러스터링(Clustering, 군집화)에 대해서 알아보자 with Python 이번 포스팅에서는 클러스터링(Clustering, 군집화)의 대표적인 알고리즘 중에 하나로 K-Means 클러스터링에 대해서 알아보려고 한다. 여기서 다루는 내용은 다음과 같다. 1. K-Means 클러스터링(Clusteri.. 2023. 1. 22.
[Scikit-Learn] 19. 클러스터링 평가 지표 실루엣 지수(Silhouette Index), Calinski-Harabasz Index, Davies-Bouldin Index (feat. silhouette_score, calinski_harabasz_score, davies_bouldin_score) Scikit-Learn에서는 클러스터링 평가를 위한 여러 가지 지표를 제공하고 있다. 여기서는 실루엣 지수(Silhouette Index), Calinski-Harabasz Index, Davies-Bouldin Index을 다루어 보겠다. 실루엣 지수(Silhouette Index)는 silhouette_score 함수, Calinski-Harabasz Index는 calinski_harabasz_score 함수, Davies-Bouldin Index는 davies_bouldin_score 함수를 이용하여 계산할 수 있다. 이제 각 함수의 사용법을 알아보자. 각 지수에 대한 개념은 아래 포스팅을 참고하기 바란다. 실루엣 지수(Silhouette Index) - https://zephyrus1111.ti.. 2023. 1. 22.
[Scikit-Learn] 18. K-근접 이웃 분류 및 회귀 (feat. KNeighborsClassifier, KNeighborsRegressor) 이번 포스팅에서는 Scikit-Learn(sklearn)을 이용하여 K-근접 이웃(K-nearest neighbor) 분류 및 회귀 모형을 학습하고 예측하는 방법 그리고 Scikit-Learn에서 제공하는 관련 기능에 대해서 알아보고자 한다. K-근접 이웃(K-nearest neighbor)을 이용한 예측은 분류 및 회귀 문제에 모두 적용할 수 있으므로 이에 대해서 각각 알아본다. 1. 분류 문제(KNeighborsClassifier) 2. 회귀 문제(KNeighborsRegressor) K-근접 분류 및 회귀에 대한 개념은 아래 포스팅을 참고하기 바란다. [머신 러닝] 2. K-최근접 이웃 분류기(K-Nearest Neighbor Classifier)에 대하여 알아보자 with Python [머신 러닝.. 2022. 12. 5.
[Scikit-Learn] 17. DBSCAN 클러스터링 해보기 (feat. DBSCAN) Scikit-Learn(sklearn)에서는 DBSCAN 클래스를 이용하여 DBSCAN 클러스터링을 수행할 수 있다. 이번 포스팅에서는 Scikit-Learn(sklearn)에서 제공하는 DBSCAN의 사용법을 알아보려고 한다. DBSCAN에 대한 개념은 아래 포스팅을 참고하면 된다. 30. DBSCAN에 대해서 알아보자 with Python 30. DBSCAN에 대해서 알아보자 with Python 이번 포스팅에서는 클러스터링 알고리즘 중 하나인 DBSCAN(Density-Based Spatial Clustering of Applications with Noise)에 대해서 알아보고자 한다. - 목차 - 1. DBSCAN이란 무엇인가? 2. DBSCAN 알고리즘 3. DBSCAN 장단 zephyrus1.. 2022. 11. 5.
[Scikit-Learn] 16. decision_path를 이용하여 주어진 데이터가 진행한 노드 정보 확인하기 의사결정 나무(Decision Tree)를 학습한 뒤 주어진 데이터가 진행한 노드들의 정보를 알고 싶을 때가 있다. 예를 들어 노드에서 분리할 때 사용된 변수와 분리 기준을 알고 싶을 때가 있을 것이다. 만약 아래 그림에서 의사결정 나무 모형이 있고 주어진 데이터에 대해서 예측을 수행하면 빨간 박스에 있는 노드(마디)들을 진행할 것이다. 이때 진행한 노드 중 중간 노드에 포함된 변수와 분리 기준은 (키, 170), (나이, 30)이 되며 마지막 터미널 노드에서의 예측값은 2인 것을 알 수 있다. Scikit-Learn(sklearn)에서는 이러한 나무 기반 모형에서 decision_path를 이용하여 주어진 데이터가 진행한 노드 아이디를 알 수 있고 이를 이용하면 진행 노드의 정보를 가져올 수 있는 것이.. 2022. 9. 18.
[Scikit-Learn] 15. Partial Dependence Plot, Individual Conditional Expectation Plot 그리기 with PartialDependenceDisplay Scikit-Learn에서는 PartialDependenceDisplay을 이용하여 Partial Dependence Plot(PDP), Individual Conditional Expectation(ICE) Plot을 그릴 수 있다. 이번 포스팅에서는 그 방법을 알아본다. Partial Dependence Plot, Individual Conditional Expectation Plot에 대한 개념은 아래 포스팅을 참고하기 바란다. 27. Partial Dependence Plot (부분 의존도 그림), Individual Conditional Expectation Plot (개별 조건부 평균 그림)에 대해서 알아보자 with Python 27. Partial Dependence Plot (부분 의존도.. 2022. 9. 2.
[Scikit-Learn] 14. Permutation Importance 계산 해보기 (feat. permutation_importance) 변수 중요도 방법론 중에서 Permutation Importance 이 많이 사용되는데 Scikit-Learn (sklearn)에서는 permutation_importance를 이용하여 Permutation Importance 를 계산할 수 있다. 이번 포스팅에서는 Scikit-Learn (sklearn) 에서 제공하는 permutation_importance 사용 방법을 알아보자. Permutation Importance의 대한 아이디어와 알고리즘에 대한 내용은 여기를 참고하면 된다. permutation_importance 사용법 먼저 필요한 모듈을 임포트하고 데이터를 받아준다. 여기서는 보스턴 집값을 사용했다. 그러고 나서 Permutation Importance를 비교를 위해 의사결정나무와 Ada.. 2022. 8. 28.
[Scikit-Learn] 13. 교차 검증(Cross-Validation)을 통한 최적 파라미터 찾기 (feat. GridSearchCV) Scikit-Learn에서 제공하는 GridSearchCV를 이용하여 예측 모형의 파라미터 최적값을 Grid Search 교차 검증으로 찾을 수 있다. 이번 포스팅에서는 GridSearchCV 사용법을 살펴본다. GridSearchCV 기본 사용법 GridSearchCV 클래스는 기본적으로 예측 모형 클래스(estimator), 최적화할 파라미터와 grid 값을 담고 있는 딕셔너리(param_grid) 그리고 교차 검증시 데이터 분할 개수(cv) 인자를 지정한다. 더 자세한 설명은 여기를 참고하기 바란다. GridSearchCV( estimator, param_grid, cv) 기본 사용법을 알았으니 예제를 통해 구체적인 사용법을 알아보자. GridSearchCV 예제 여기서 살펴볼 예제는 서포트벡터머신.. 2022. 8. 9.
[Scikit-Learn] 12. 파이프라인(Pipeline) 사용하기 (feat. Pipeline, make_pipeline) 이번 포스팅에서는 Scikit-Learn(sklearn)에서 Pipeline의 개념과 이를 사용하는 방법에 대해서 알아보려고 한다. - 목차 - 1. Pipeline 개념 2. Pipeline 사용법 Pipeline 개념 Pipeline은 데이터 전처리에서 학습까지의 과정을 하나로 연결해주는 것이라고 보면 된다. Pipeline이라는 단어도 각 과정을 파이프로 연결된 모습을 묘사한 것 같다. 아래 그림은 변수 선택에서부터 학습까지의 과정을 Pipeline을 사용하지 않은 경우와 사용하는 경우를 나타낸 것이다. 왼쪽 그림은 Pipeline을 사용하지 않는 경우 즉, 기존 방식의 모형 학습 과정이다. 기존 방식은 변수 선택 과정을 코딩하고 선택된 변수를 다시 표준화 한 다음 이를 가지고 모형을 학습하게 된다.. 2022. 8. 7.
[Scikit-Learn] 11. 랜덤포레스트(Random Forest) 모형 학습하기 (feat. RandomForestClassifier, RandomForestRegressor) Scikit-Learn(sklearn)에서는 RandomForestClassifier, RandomForestRegressor를 이용하여 랜덤포레스트(Random Forest) 모형을 학습할 수 있다. 이번 포스팅에서는 Scikit-Learn(sklearn)을 이용하여 랜덤포레스트를 학습하는 방법을 알아본다. 랜덤포레스트는 분류 문제, 회귀 문제에 모두 적용할 수 있으므로 각각에 대해서 알아보자. - 목차 - 1. 분류 문제(RandomForestClassifier) 2. 회귀 문제(RandomForestRegressor) 랜덤포레스트(Random Forest)에 대한 개념은 아래에 포스팅해두었으니 궁금하신 분들은 읽어보면 좋다. 24. 랜덤포레스트(Random Forest)에 대해서 알아보자 24. 랜.. 2022. 8. 7.

맨 위로