머신러닝 배우기
-
피처 엔지니어링 기법 싹 다 모으기머신러닝 배우기 2024. 2. 25. 17:20
피처 엔지니어링은 모델을 훈련시키기 전에 데이터의 패턴을 더 잘 이해하고, 더 나은 예측을 할 수 있도록 데이터를 가공하는 단계입니다. 피처 엔지니어링을 잘하면 1) 모델의 성능이 향상되고, 2) 오버피팅을 방지할 수 있으며 3) 모델 해석력을 향상시킬 수 있습니다. 성능을 끌어올리기 위해서 데이터의 특성, 모델의 종류에 따라 올바른 처리를 해야 하며, 분석 목적과 도메인 지식을 종합적으로 활용하여 더 풍부한 정보를 제공해야 합니다. ► 결측치 처리 → 설명 : 데이터 수집 과정에서 발생할 수 있는 실수, 누락, 또는 불완전한 정보 등으로 인해 발생. → 처리 방법 : 데이터가 누락된 부분을 삭제하거나 의미있는 값들로 채우기. (자세한 방법 및 코드 참고) ►아웃라이어 처리 → 설명 : 아웃라이어는 일반..
-
[머신러닝] "불균형 데이터" 평가 지표로 "정확도"는 알맞지 않다.머신러닝 배우기 2024. 1. 3. 18:26
문제 상황 : 마케팅 부서에 있었을 때, 오픈뱅킹 가입을 유도하기 위해 기프티콘을 주는 이벤트를 했습니다. 문자를 보낸 고객 중에 가입을 한 고객은 0.5%였습니다. 기존에는 가입하지 않은 고객들을 랜덤으로 뽑아서 문자를 보냈지만 정해진 예산으로 인해 가입할 것 같은 고객을 추려서 문자를 보내기로 했습니다. 이전 마케팅했던 고객을 대상으로 성, 연령, 타행 오픈뱅킹 가입 여부, 로그인 경과일 등의 피쳐를 활용해 머신러닝 분류 모형을 만들었습니다. 그리고 마케팅하지 않았던 고객들을 모델에 넣어 가입할 것 같은 고객들에게 문자를 보냈습니다. 분류 모델의 정확도는 99%가 넘었지만 실제 가입한 고객들을 얼마되지 않았습니다. 왜 그럴까요? 문제는 왜 발생한 것일까요? : 가입율이 0.5%인 데이터는 불균형한 데..
-
[머신러닝] 전처리 및 모델 Pipeline 파이프라인 구축하기 (#파이썬)머신러닝 배우기 2024. 1. 2. 12:09
데이터셋을 받았을 때, EDA를 한 후 어떤 데이터가 어떤 타입인지 확인을 하고 그에 맞는 변환 처리를 해줍니다. 결측치처리, outlier처리, 스케일링, 원핫인코딩, 라벨인코딩 등의 과정을 거쳐야합니다. 데이터의 특성과 목적에 맞게 변환을 해주어야 올바른 모델 성능이 나옵니다. 그리고 보통의 데이터들은 문자 숫자가 섞여있고 깔끔하게 정제되어 있는 경우가 거의 없습니다. 그렇기 때문에 받을 때마다 전처리를 해야합니다. 또한 모델 구축할 때 알맞은 파라미터를 찾기 위해 그리드 서치 기법을 사용하면서 모델 구축 및 하이퍼파라미터 튜닝까지 파이프라인에 태울 수 있습니다. Pipeline은 데이터 전처리 및 모델 구축 과정에서 여러 단계를 순차적으로 처리하는 데 사용되는 유용한 도구입니다. 파이프라인을 사용하..
-
불균형 데이터 SMOTE 코드 위주 실습과 결과 해석머신러닝 배우기 2023. 12. 28. 12:22
이전 시간에 "불균형 데이터"가 왜 문제가 되고, 어떻게 처리해야 하는지, 어떤 평가 지표를 봐야하는지에 대해 공부했습니다. 오늘은 간단하게 코드로 구현해보려고 합니다. 불균형 데이터의 앞단 전처리가 완료되어 모델을 학습하는 것부터 진행해보도록 하겠습니다. ※ 데이터 : 캐글 Credit Card Fraud Detection https://www.kaggle.com/datasets/mlg-ulb/creditcardfrau 1. 필요한 라이브러리 불러오기 from imblearn.over_sampling import SMOTE from sklearn.model_selection import train_test_split from lightgbm import LGBMClassifier from sklearn..
-
불균형 데이터의 문제와 해결 방법, 평가지표머신러닝 배우기 2023. 12. 28. 00:37
오늘은 "불균형 데이터"에 대해서 다뤄보려고 합니다. 불균형 데이터는 클래스별 개수가 크게 차이나는 분류 데이터를 의미합니다. 불균형 데이터는 참 골치 아픕니다. 왜 골치 아픈 친구들이며 어떻게 처리해야하는지 여러 기법들에 대해서 배워보도록 하겠습니다. ▶︎ 불균형 데이터가 왜 문제가 돼? → 다수 클래스 위주로 정답을 부르는 모델로 학습됩니다. 클래스가 불균형하면 모델은 다수의 클래스에 대해 높은 중요성을 부여하여 학습을 하게 됩니다. 그래서 소수 클래스에 대해서는 충분한 학습이 이루어지지 않아 이를 잘 분류해내지 못합니다. → 예를 들어, 1000개 카드 거래 중의 999개가 정상 거래, 1개가 사기 거래 일 때, 모델이 모든 클래스에 대해 정상 거래라고 예측을 해도 99.9% 정확도를 얻을 수 ..
-
카테고리컬 변수 인코딩하는 세가지 방법 (원핫 인코딩, 라벨 인코딩, 바이너리 인코딩)머신러닝 배우기 2023. 12. 17. 01:26
▶︎ 카테고리컬(명목형, 범주형) 변수란? → 카테고리컬 변수는 이름에서 알 수 있듯 변수의 속성값은 서로 구분되는 카테고리를 나타내는 변수입니다. 속성값은 양적인 값을 갖지 않으며, 카테고리를 구분하기 위한 값이고 숫자로 표현되더라도 각 값의 크기나 순서에는 의미가 없습니다. 즉, 숫자로 표현되더라도 그룹 간에 단순히 식별하기 위한 용도일 뿐이며, 숫자 값 자체에는 의미가 없습니다. → 예시) 성별(남성, 여성), 색상(빨강, 파랑, 노랑, 초록) ▶︎ 카테고리컬 변수를 인코딩 해야하는 이유 → 머신러닝 모델은 데이터를 숫자로 입력받아야 이해하고 처리할 수 있기 때문에 인코딩 과정이 필요합니다. ▶︎ 카테고리컬 변수의 인코딩 종류와 장단점 1. 원-핫 인코딩 (One-Hot Encoding) - 개념 ..
-
[머신러닝] PCA와 feature selection 과의 비교머신러닝 배우기 2023. 12. 12. 15:17
머신러닝/딥러닝을 할 때, 데이터가 너무 많은데 하필 또 계산량이 많은 알고리즘(예, 거리 기반 알고리즘)을 적용해야할 때가 있습니다. 또는 데이터는 많지만 독립변수가 종속변수와 상관관계가 적을 때, 괜히 계산 리소스만 잡아먹기도 하고 모델이 일반화하기 어렵기도 합니다. 그럴 때면 피쳐를 줄이기 위해 Feature selection 을 하거나 PCA 방법을 사용하여 차원을 축소하곤 합니다. 이 두 가지 방법은 어떻게 다르고 PCA 기법이 무엇인지에 대해 알아보도록 하겠습니다. ▶︎ Feature selection과 PCA 비교하기 feature selection PCA 개념 독립변수 중에 종속변수와의 관련이 적은 변수들을 제거하거나 다중공선성이 큰 독립변수들을 제거하는 등 모델의 성능과 복잡성을 위해 덜..
-
[머신러닝] 클러스터링의 대표, K-means Algorithm머신러닝 배우기 2023. 12. 12. 12:13
▶︎ K-means Algorithm 이란? → 비지도 학습의 클러스터링 기법 중 하나로, K개의 클러스터로 그룹화 한다. → 같은 클러스터에서는 서로 가깝고, 다른 클러스터끼리는 멀다는 것이 기본 개념이다. ▶︎ 수행 방식 1. K개의 클러스터 중심값을 임의로 선택한다 2. 각 데이터 포인트들을 모든 중심값까지의 거리를 구한 뒤, 가장 가까운 중심값의 클러스터로 할당한다 (거리 계산 시, 보통 유클리디안 거리를 활용) 3. 각 클러스터에 속한 데이터 포인트들의 평균을 계산하여 중심값을 평균값으로 업데이트한다. 4. 데이터 포인트들에 대한 클러스터 할당이 변하지 않을 때까지 (= 업데이트하는 데이터들의 평균값이 거의 움직이지 않고 수렴할 때까지) 2,3을 반복한다. ▶︎ K-means Algorithm의..