본문 바로가기

프로그래밍167

파이썬(Python) pickle을 이용한 파이썬 객체 저장 pickle은 파이썬(Python) 내장 모듈로써 파이썬 객체를 객체 자체로 파일로 저장할 수 있게 해주는 모듈이다. 예를 들면 리스트는 리스트로 딕셔너리는 딕셔너리로 저장된다는 것이다. 따라서 불러올 때에도 객체가 보존되어 바로 사용할 수 있다. pickle이 좋은 이유는 기존 text 파일과 비교해 보면 되는데 예를 들어 5GB짜리 text 파일을 읽어 온 다음 이 중에서 여러 곳에 흩어져 있는 문자열을 가져온다고 해보자. 그러면 전체 text를 파싱하여 필요한 부분을 찾아야 하므로 굉장히 비효율적이다. 하지만 pickle은 여러 곳에 흩어져 있는 문자열을 리스트에 담아서(물론 처음에는 text 파일을 불러와야 한다) 그 리스트 자체를 저장하면 다음부터는 불러올 때 전체 text 파일을 읽어올 필요가.. 2023. 2. 3.
[Scikit-Learn] 22. ROC 곡선과 AUC (feat. roc_score, RocCurveDisplay, roc_auc_score, auc) ROC(Receiver Operating Characteristic) 곡선과 AUC(Area Under the Curve)은 2 분류 예측 모형의 성능을 평가할 때 사용된다. Scikit-Learn(sklearn)에서는 ROC 곡선을 그리고 AUC 값을 계산할 수 있는 함수를 제공하는데 roc_score, RocCurveDisplay, roc_auc_score, auc, 가 오늘의 주인공이다. 이번 포스팅에서는 roc_score, RocCurveDisplay, roc_auc_score, auc의 사용법을 알아보고자 한다. ROC 곡선과 AUC에 대한 개념이 궁금하면 아래 포스팅을 참고하면 된다. 34. ROC(Receiver Operating Characteristic) 곡선과 AUC(Area Under.. 2023. 2. 2.
[shap] SHAP Value 계산 및 시각화 결과 해석하기 with Python 이번 포스팅에서는 파이썬(Python) shap 패키지를 이용하여 SHAP Value 계산 방법과 시각화 결과를 어떻게 해석하는지 알아보려고 한다. SHAP Value에 대한 개념은 아래 포스팅을 참고하기 바란다. 25. Shapley Value와 SHAP에 대해서 알아보자 with Python 25. Shapley Value와 SHAP에 대해서 알아보자 with Python 이번 포스팅에서는 게임 이론에서 상금 분배 방법의 하나인 Shapley Value와 이를 머신러닝 예측 모형을 해석하는 데 활용한 SHAP에 대해서 알아보고자 한다. 그리고 SHAP Value를 계산하는 과정을 파이 zephyrus1111.tistory.com SHAP Value 계산 및 시각화 결과 해석하기 - 목차 - 1) sh.. 2023. 1. 23.
[imageio] 파이썬(Python)으로 이미지 파일을 모아서 gif 파일 만들기 이번 포스팅에서는 파이썬(Python) 패키지 imageio를 이용하여 여러 이미지를 합쳐서 gif 파일로 만들어보는 방법을 소개하려고 한다. imageio로 gif 파일 만들기 1) imageio 설치 imageio가 없다면 설치를 해줘야 한다. 아래 코드를 복사해서 설치하면 된다. pip install imageio 2) gif 파일 만들기 a. 이미지 생성 먼저 이미지 파일을 만들어 준다. 나는 아래와 같은 수평선을 조금씩 위로 올라가는 장면을 gif로 저장하려고 한다. 아래 코드는 images 폴더에 총 9장의 이미지를 저장한다. import os import matplotlib.pyplot as plt image_dir = './images' if os.path.exists(image_dir):.. 2023. 1. 23.
[Scikit-Learn] 21. Gaussian Mixture Model 클러스터링 (feat. GaussianMixture) Scikit-Learn(sklearn)에서는 가우시안 혼합 모형(Gaussian Mixture Model) 클러스터링 알고리즘을 수행할 수 있는 클래스를 구현하였다. GaussianMixture가 바로 그것이다. 이번 포스팅에서는 GaussianMixture를 이용한 가우시안 혼합 모형(Gaussian Mixture Model) 클러스터링을 해보고자 한다. 가우시안 혼합 모형(Gaussian Mixture Model) 클러스터링 알고리즘의 개념은 아래 포스팅을 참고하기 바란다. 12. Gaussian Mixture Model(가우시안 혼합 모형) 클러스터링(군집 분석)에 대해서 알아보자 with Python 12. Gaussian Mixture Model(가우시안 혼합 모형) 클러스터링(군집 분석)에 대.. 2023. 1. 22.
[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.
파이썬(Python) ast 모듈을 이용하여 문자(String) 타입의 리스트나 튜플, 딕셔너리를 리스트, 튜플, 딕셔너리 타입으로 변환하기 (feat. literal_eval) csv나 Excel과 같은 데이터 테이블 읽다 보면 때때로 특정 칼럼에 리스트, 튜플 그리고 딕셔너리로 포함된 경우가 있다. 이를 Pandas 데이터프레임으로 불러오면 리스트(튜플, 딕셔너리)가 아닌 문자 타입으로 읽어지는 경우가 있다. 즉, 원래 객체 타입이 문자 타입으로 바뀐 것인데 ast 모듈의 literal_eval 함수를 사용하면 문자를 원래 객체 타입으로 바꿀 수 있다. 이번 포스팅에서는 해결하고자 하는 문제를 살펴보고 literal_eval 함수를 이용하여 문제를 어떻게 해결하는지 알아보고자 한다. literal_eval 사용법 1) 문제 확인 먼저 Pandas 데이터프레임을 하나 만들어보았다. 각 칼럼에 리스트, 튜플 그리고 딕셔너리를 갖도록 했다. 그러고 나서 각 칼럼의 첫 번째 원소 타.. 2023. 1. 19.
[Scipy] 3. 관측된 (x, y, z) 데이터로부터 xy 평면에 격자형 좌표에 대한 z값을 보간법(Interpolation)으로 추정하기 (feat. griddata) 이번 포스팅에서는 주어진 $(x, y, z)$로부터 격자형 구조를 갖는 $(x', y')$에 대한 $z'$값을 보간법(Interpolation)으로 추정하는 방법에 대해서 알아본다. griddata를 이용한 보간법 추정 포스팅 제목이 뭔가 거창한데 아래 그림을 보면 쉽게 이해될 수 있다. 먼저 주어진 $(x, y, z)$에 대해서 $z$를 제외한 $(x, y)$가 아래 왼쪽 그림이다. 이때 오른쪽 그림에서 격자형 구조를 갖는 $(x', y')$은 빨간 점이다. 이때 빨간 점에 대응하는 $z'$값을 주어진 데이터 $(x, y, z)$를 보간법을 이용하여 추정하겠다는 것이다. 이때 주어진 $(x, y)$로 이루어진 Convex Hull(오른쪽 그림에서 초록 경계) 내에서 보간법 추정이 이루어진다. Conve.. 2023. 1. 15.
Openpyxl을 이용하여 엑셀(Excel) 셀 안에 이미지(Image) 삽입하기 파이썬(Python)을 이용하면 엑셀 파일에서 셀 안에 이미지를 삽입할 수 있다. Openpyxl을 사용하면 가능한데 이번 포스팅에서는 Openpyxl을 이용하여 엑셀(Excel) 셀 안에 이미지(Image)를 삽입하는 방법을 알아본다. 셀 안에 이미지(Image) 삽입하기 1) 한 개 이미지 삽입 우선 한 개 이미지 삽입하는 방법을 알아보자. 방법은 간단하다. 이미지를 삽입하고 이미지 픽셀을 엑셀(Excel)의 셀 사이즈 단위로 변환하여 그에 맞게 셀 폭과 높이를 변경하면 된다. 아래 코드는 하나의 이미지를 삽입하는 작업을 수행한다. 이때 이미지 사이즈는 픽셀 단위로 500X281이다. 여기서 핵심은 바로 get_col_width_row_height 함수인데 이 함수가 이미지 사이즈를 픽셀 단위에서 엑.. 2023. 1. 14.

맨 위로