본문 바로가기

전체 글523

[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.
33. 클러스터링(군집화) 평가 지표 Calinski-Harabasz index, Davies-Bouldin index, Rand Index에 대해서 알아보자 with Python 지난 포스팅에서는 클러스터링(군집화) 평가 지표로써 Dunn Index, Silhouette Index에 대해서 알아보았다. 이번엔 그 외 평가 지표인 Calinski-Harabasz index, Davies-Bouldin index, Rand Index에 대해서 알아보고 파이썬으로 구현하는 방법도 소개하고자 한다. Dunn Index와 Silhouette Index에 대한 내용은 아래 포스팅을 참고하기 바란다. 12. 클러스터링(군집화) 평가 지표 Dunn Index with Python 14. 클러스터링(군집화) 평가지표 Silhouette(실루엣) 지수(계수)에 대해서 알아보자 with Python - 목차 - Calinski-Harabasz index Davies-Bouldin index Cali.. 2023. 1. 22.
[Pandas] 40. 데이터프레임(DataFrame)의 특정 칼럼으로 데이터 순위 매기기 (feat. rank) 안녕하세요~ 꽁냥이에요. 데이터 분석을 하다 보면 특정 칼럼에 어떤 값을 기준으로 순위(Rank)를 매겨야 할 때가 있는데요. Pandas에서는 rank라는 함수를 이용하여 데이터프레임(DataFrame)의 특정 칼럼으로 데이터의 순위를 매길 수 있습니다. 이번 포스팅에서는 데이터 rank를 이용한 순위를 구하는 방법에 대해서 알아보겠습니다. 데이터프레임(DataFrame)의 특정 칼럼으로 데이터 순위 매기기 1) 데이터프레임(DataFrame)의 특정 칼럼을 기준으로 순위 매기기 먼저 숫자 값을 갖고있는 배열의 순위(Rank)를 매기는 방식을 알아보겠습니다. 먼저 배열을 오름차순(또는 내림차순)으로 정렬한 뒤 맨 첫 원소의 1을 부여하고 다음 원소로 갈수록 1씩 증가시켜 순위(Rank)를 부여합니다. .. 2023. 1. 21.
[Pandas] 39. 데이터프레임 열(칼럼) 또는 행 똑같이 맞추기 (feat. align) 안녕하세요~ 꽁냥이에요. 데이터 분석을 하다 보면 여러 테이블을 합쳐야 하는데 칼럼이나 행이 일치하지 않아서 이를 일치시켜주어야 할 때가 있습니다. Pandas에서는 align이라는 함수를 이용하여 여러 데이터프레임에 대하여 칼럼 열(칼럼) 또는 행을 똑같이 맞출 수 있는데요. 이번 포스팅에서는 Pandas의 align 함수를 방법에 대해서 알아보겠습니다. align 사용법 두개의 데이터프레임 df1, df2가 있다고 할 때 align의 사용법은 다음과 같습니다. df1.align( df2, join, axis ) align은 두 데이터프레임을 결합할 때 사용하는 join 메서드와 비슷합니다. align 함수는 일치시킬 데이터프레임을 첫 번째 인자로 넣어줍니다. join 인자에는 일치시키는 방법을 말하며.. 2023. 1. 19.
파이썬(Python) ast 모듈을 이용하여 문자(String) 타입의 리스트나 튜플, 딕셔너리를 리스트, 튜플, 딕셔너리 타입으로 변환하기 (feat. literal_eval) csv나 Excel과 같은 데이터 테이블 읽다 보면 때때로 특정 칼럼에 리스트, 튜플 그리고 딕셔너리로 포함된 경우가 있다. 이를 Pandas 데이터프레임으로 불러오면 리스트(튜플, 딕셔너리)가 아닌 문자 타입으로 읽어지는 경우가 있다. 즉, 원래 객체 타입이 문자 타입으로 바뀐 것인데 ast 모듈의 literal_eval 함수를 사용하면 문자를 원래 객체 타입으로 바꿀 수 있다. 이번 포스팅에서는 해결하고자 하는 문제를 살펴보고 literal_eval 함수를 이용하여 문제를 어떻게 해결하는지 알아보고자 한다. literal_eval 사용법 1) 문제 확인 먼저 Pandas 데이터프레임을 하나 만들어보았다. 각 칼럼에 리스트, 튜플 그리고 딕셔너리를 갖도록 했다. 그러고 나서 각 칼럼의 첫 번째 원소 타.. 2023. 1. 19.
[Pandas] 38. 특정 칼럼(Pandas Series)의 누적합, 누적곱, 누적 최대값, 누적 최소값 구하기(feat. cumsum, cumprod, cummax, cummin) 안녕하세요~ 꽁냥이입니다. 이번 포스팅에서는 Pandas에서 제공하는 누적합(cumsum), 누적곱(cumprod), 누적 최대값(cummax), 누적 최소값(cummin)을 구하는 방법을 알아보고자 합니다. 누적값 구하기 1) 누적합 : cumsum 누적합은 배열의 첫 번째 원소부터 다음 원소로 진행해가면서 값을 계속 더해나가는 것을 말합니다. Pandas에서는 Series 객체의 cumsum 메서드를 이용하면 누적합을 계산할 수 있습니다. 이때 NaN을 만나면 NaN을 출력하고 그 다음 부터는 무시합니다. import pandas as pd import numpy as np data = [1,2,3,7,np.nan,10,1] print(pd.Series(data).cumsum()) 만약 NaN를 쭉 .. 2023. 1. 18.
[Pandas] 37. 여러가지 통계량 구하기 안녕하세요~ 꽁냥이에요. 이번 포스팅에서는 Pandas에서 제공하는 여러 가지 통계량(평균, 분산, 중앙값, 분위수 등)을 정리해 보았어요. 테이블에 통계량의 의미와 함수를 정리했고요. 테이블에서 data는 숫자형 데이터를 담고있는 1차원 배열을 의미합니다. 또한 사용법도 있으니 같이 참고하시면 좋습니다. 여러가지 통계량 1) 대표값 평균 pd.Series(data).mean() 중앙값 pd.Series(data).median() 최빈값 pd.Series(data).mode() 제1 사분위수 pd.Series(data).quantile(0.25) 제2 사분위수(중앙값) pd.Series(data).quantile(0.5) 제3 사분위수 pd.Series(data).quantile(0.75) - 파이썬 예.. 2023. 1. 18.
[Pandas] 36. 특정 칼럼 정렬되어 있는지 확인하기 (feat. is_monotonic_increasing, is_monotonic_decreasing) 안녕하세요~ 꽁냥이에요. 오늘은 꽁냥이가 Pandas 문서를 살펴보다가 알게 된 기능을 소개하려고 하는데요. 바로 is_monotonic_increasing, is_monotonic_decreasing 속성입니다. 이 속성들은 Pandas Series 객체가 오름차순 정렬인지 내림차순 정렬인지를 알려줍니다. 이를 이용하면 데이터프레임에서 특정 칼럼의 정렬 여부를 확인할 수 있습니다. 특정 칼럼 정렬되어 있는지 확인하기 1) 오름차순 정렬 확인 : is_monotonic_increasing is_monotonic_increasing은 Pandas Series 객체(또는 칼럼)가 오름차순으로 정렬되어 있는지 확인해 줍니다. df = pd.DataFrame() df['A'] = [1,2,3,4,5] df['B.. 2023. 1. 18.
[Pandas] Tip!! 원하는 데이터 구간 만들기 (feat. IntervalIndex.from_tuples) 안녕하세요~ 꽁냥이에요. 지난 포스팅에서는 Pandas의 cut과 qcut데이터를 구간으로 나누어 보는 방법에 대해서 소개했는데요. 이번 포스팅에서는 번외로 데이터로부터 구간을 만드는 것이 아닌 직접 구간을 만드는 방법을 소개하려고 합니다. cut과 qcut 사용 방법은 아래 포스팅을 참고하시기 바랍니다. [Pandas] 35. 데이터 구간 나누기 (feat. cut, qcut) [Pandas] 35. 데이터 구간 나누기 (feat. cut, qcut) 안녕하세요~ 꽁냥이에요. 데이터 분석을 하다 보면 데이터를 특정 칼럼값을 기준으로 구간을 나누어야 할 때가 있는데요. Pandas에서 제공하는 cut과 qcut을 이용하면 쉽게 구간을 나눌 수 있어요. zephyrus1111.tistory.com 원하는 .. 2023. 1. 17.

맨 위로