[머신러닝/사이킷런] 분류 모델 평가(정확도, 오차행렬, 정밀도, 재현율, F1 Score, ROC AUC)
·
ML
학습 자료: 파이썬 머신러닝 완벽 가이드(개정2판), 위키북스 1. 정확도(Accuracy)개요실제 데이터에서 예측 데이터가 얼마나 같은지를 판단하는 지표 수식정확도(Accuracy) = (TN + TP) / (TN + FP + FN + TP)예측 결과가 동일한 데이터 건수 / 전체 예측 데이터 건수 주의할 점직관적으로 모델 예측 성능을 나타내는 지표이지만, 이진 분류의 경우 모델 구성에 따라 성능을 왜곡할 수 있음예시) 전체 데이터의 10%만 True, 90%는 False일 경우 모든 예측을 False로만 수행해도 정확도가 0.9가 나옴특히, 불균형한(imbalanced) 레이블 값 분포에서 성능을 판단할 경우 적합하지 않음 사이킷런accuracy_score(y_test, pred) 2. 오차 행렬(C..
[머신러닝/사이킷런] 피처 스케일링(표준화, Min-Max 정규화)
·
ML
학습 자료: 파이썬 머신러닝 완벽 가이드(개정2판), 위키북스피처 스케일링(feature scaling)피처 간 스케일의 차이가 서로에게 영향을 주지 않도록 서로 다른 피처의 값 범위를 일정한 수준으로 맞추는 작업1. 표준화(Standardization)개요데이터의 피처 각각 평균이 0, 분산과 표준편차가 1인 가우시안 정규 분포를 가진 값으로 변환하는 것 수식이 때, 계산된 z-score를 이용해 이상치를 탐지할 수 있다. 보통 |Z| > 2 또는 |Z| > 3인 경우 이상치로 간주된다.주의할 점 정규분포를 따르지 않는 데이터에서는 효과가 떨어질 수 있다.데이터가 정규분포를 따를 경우, 데이터가 정규분포를 가지고 있다고 가정하고 구현된 알고리즘에서 효과적이다. SVM, 선형회귀, 로지스틱 회귀 사이킷런..
[머신러닝/사이킷런] 데이터 인코딩(레이블 인코딩, 원-핫 인코딩)
·
ML
학습 자료: 파이썬 머신러닝 완벽 가이드(개정2판), 위키북스데이터 인코딩문자열 피처를 머신러닝에 활용될 수 있는 방식의 숫자형으로 변환하는 과정데이터 전처리(Preprocessing) 과정에 포함 1. 레이블 인코딩개요카테고리 피처를 코드형 숫자 값으로 변환 주의할 점변환 시 숫자 값의 대소가 알고리즘에 가중치를 부여하는 방식으로 작용할 위험이 있다.따라서, 다음 머신러닝 알고리즘에서는 사용하면 안된다. KNN, K-means Clustering, SVM, 선형 회귀, 로지스틱 회귀 트리 계열의 알고리즘에는 일반적으로 문제가 없다. 그러나, 거리나 우선순위 기반인지 알아보고 처리하는 것이 좋다. 사이킷런LabelEncoder(): 객체fit(): 데이터 변환을 위한 기준 정보 설정transform():..
[머신러닝/사이킷런] 교차 검증(K-Fold, Stratified K-Fold)
·
ML
학습 자료: 파이썬 머신러닝 완벽 가이드(개정2판), 위키북스교차 검증개요고정된 학습 데이터와 테스트 데이터로 학습할 시 나타나는 과적합(Overfitting) 문제를 개선하기 위한 방법.ML 알고리즘이 데이터를 선별해 학습함으로써 생기는 데이터 편중을 막기 위해 별도의 여러 세트로 구성된 학습 데이터셋과 검증 데이터셋에서 학습과 평가를 수행한다. 프로세스교차 검증 기반으로 1차 평가 -> 최종적으로 테스트 데이터셋에 적용(테스트셋에서 분할된 학습 데이터셋을 다시 분할하여 검증 데이터셋을 만들기도 한다.) 1. K-Fold 교차 검증개요K 개의 데이터 폴드 세트를 만들어 K번만큼 각 폴드 세트에 학습과 검증 평가를 반복적으로 수행하는 방법K번 만큼 평가를 수행한 뒤 이 K개의 평가를 평균한 결과를 가지고..
[Streamlit] 3. config와 secrets
·
ASAC 6기/Streamlit
Streamlit에서 일반 설정은 config와 secrets로 관리할 수 있다. config에서는 테마, 서버 설정 등을 관리,secrets에서는 민감한 개인 정보를 관리한다. 나는 프로젝트에서 각각 다음과 같은 방식으로 활용했다.configtheme, server, browsersecretsdatabricks, api  설정을 위해서는 실행 파일과 같은 위치에 .streamlit 폴더를 만들고 그 안에 config와 secrets를 넣으면 된다.확장자는 toml로 설정해 줘야 한다. 참고로 toml 파일은 터미널에서 생성할 수 있다.[terminal]# cd 스트림릿 파일 경로mkdir .streamlitecho. > .streamlit\secrets.toml 그렇게 구성된 경로는 다음과 같이 만들어..
[Streamlit] 2. CSS/폰트 적용하기
·
ASAC 6기/Streamlit
저번 멀티페이지 설정 이후 이런 사이드바가 생성되었다.   기능엔 충실하지만 웹서비스 사이드바 버튼으로 쓰기는 UI적으로 부족해 보였다.특히, 한글 페이지의 경우 폰트가 깔끔하지 않은 느낌을 많이 주었다.그래서 우선 폰트를 변경해 주고자 한다.  1. 폰트스트림릿 자체에서 지원하는 폰트는 이렇게 세 개가 끝이다.즉, 스트림릿에서 이외의 폰트를 사용하기 위해서는 웹폰트를 사용해야 한다. 나는 깔끔하고 무난한 프리텐다드 체를 반영하기로 했다.내가 반영한 버전은 1.3.8 버전이지만 현재 1.3.9 버전까지 나와 있다.자세한 사항은 프리텐다드 깃허브를 참고하면 된다.  GitHub - orioncactus/pretendard: 어느 플랫폼에서든 사용할 수 있는 system-ui 대체 글꼴 | A system-..
[Streamlit] 1. 효율적인 멀티페이지 설정(글리치 현상 해결)
·
ASAC 6기/Streamlit
Streamlit을 사용하는 대부분의 사람들은 단일 페이지(카테고리)만 구성된 웹사이트를 원하지는 않을 것이다.그렇다고 한 파일에 다중 페이지 코드를 때려박는 걸 원하지도 않겠지스트림릿에서 다중 페이지를 구성하기 위해서는 여러 가지 방법을 활용할 수 있다. 그 중 하나로 많이 추천되는 방법은 pages라는 폴더를 만들고 원하는 페이지에 해당하는 파일들을 하나씩 넣는 것이다.Streamlit 공식 도큐먼트에서도 이 방법에 대해 소개하고 있다.  Streamlit DocsJoin the community Streamlit is more than just a way to make data apps, it's also a community of creators that share their apps and id..
[Streamlit] 0. Streamlit이란?
·
ASAC 6기/Streamlit
📌 Streamlit이란? Python 기반(라이브러리) 프론트엔드 데이터 시각화 기능 프레임워크로,파이썬 코드로 구현 가능한 데이터 대시보드 및 챗봇을 웹페이지에 구현할 수 있는 서비스라고 생각하면 된다.  리서치를 통해 정리해 본 핵심 기능은 다음과 같다. 📌 핵심 기능1. 반응형 프로그래밍   - 복잡한 상태 관리나 콜백 함수 없이도 사용자 인터랙션에 따른 변화를 쉽게 구현할 수 있음2. 데이터 캐싱     - 파라미터가 달라졌거나 구현 내용이 달라진 경우에 한해서만 함수를 다시 실행하여 불필요한 재실행 방지     - 복잡한 연산 결과를 재사용해야 할 경우(직렬화 가능, 데이터 불변성 필요) 3. 리소스 캐싱     - 프로그램에서 사용되는 리소스를 한 번만 로드하거나 연결하고, 이후의 호출에..
24/12/04 Python
·
코딩테스트
1. 카펫 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krLeo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다.Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다.Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요.def solution(brown, yellow): x = 3 whi..
helena1129
'분류 전체보기' 카테고리의 글 목록 (4 Page)