전체 글

머신러닝 및 딥러닝/딥러닝

인공신경망과 퍼셉트론 이론

개요 구글 Tensorflow - keras 병합 kera는 text 처리에 유용한 라이브러리였음 BERT(구글꺼) 메타 이미지 쪽으로 특화된 라이브러리를 개발 시작 = pytorch 그런데 이제는 text 처리를 pytorch에도 쓰고 keras를 이미지 처리에도 쓰는 둘다 괜찮은 라이브러리임 미세조정 딥러닝 : 미리 만들어놓은 어느정도의 모델들을 미세 조정(미세 학습)하여 Fine Tuning 본인들에게 맞춤하는 영역으로 가고 있음 ex ) Ko-Bert 미세 조정은 pytorch로 함 - 그래서 pytorch 진형 tensorflow 진형 구분이 어렵다. - tensorflow, keras 위주로 실습하겠다. 다만 pytorch도 사용할 수 있게끔 준비하자. 인공지능, 머신러닝 , 딥러닝 인공지능 ..

데이터 노하우/꿀팁

Pandas 데이터 처리 효율성 전략(Pycon Korea)

이 글은 PyCon Korea의 "뚱뚱하고 굼뜬(Pandas)를 위한 효과적인 다이어트 전략 - 오성우" 영상을 참고했습니다. https://www.youtube.com/watch?v=0Vm9Yi_ig58 1. Memory Optimization 1-1 코드화 문자열로 된 데이터를 숫자/영어로 변환하여 데이터 크기 축소 남자 -> 0 여자 -> 1 서울특별시 -> 11 대구광역시 -> 45 정상 -> 0 비정상 -> 1 한글 문자열로된 범주 값을 숫자 형태로 변환하는 코드화 작업을 진행했더니 4.49GB -> 1.79GB로 크게 감소 1-2 데이터 형식 변환 데이터 형식에 따라서 표현하는 값의 범위와 사용하는 메모리 크기가 달라집니다. 컬럼마다 고정된 크기(Fixed-length)로 할당하기 때문에 크기..

프로젝트 회고록/심장질환 AI 예측 머신러닝 프로젝트

심장질환 AI 예측 머신러닝 프로젝트 회고

두번째 미니 프로젝트를 마치고 나서 쓰는 회고록입니다. 3일 정도의 시간동안 무사히 기획한 방향대로 진행하고, 프로젝트 평가 1위를 할 수 있게 해준 병창님, 경목님 모두 고생하셨습니다! 1. 프로젝트 소개 심장질환 AI 예측 대중이 쉽게 접근 가능한 심장질환 판별 및 발생 확률 제공 웹사이트를 제작하겠다는 목적으로 프로젝트를 진행했습니다. 데이터셋은 캐글의 Personal Key Indicators of Heart Disease 데이터를 활용해서, 다양한 머신러닝을 경험해보면서 웹사이트에 모델을 적용하는 방식으로 적용했습니다. https://www.kaggle.com/datasets/kamilpytlak/personal-key-indicators-of-heart-disease 진행기간 2023년 2월 ..

머신러닝 및 딥러닝/머신러닝

군집(clustering)

군집 평가(Cluster Evaluation) 실루엣 분석(sillhouette analysis) 각 군집 간의 거리가 얼마나 효율적으로 분리되었는지 나타냄 클러스터 내 데이터들이 얼마나 조밀하게 모여있는지 측정하는 도구 다른 군집과 거리는 떨어져있고, 동일 군집끼리의 데이터는 잘 뭉쳐있어야함 군집화가 잘 이루어질수록, 개별 군집은 비슷한 정도의 여유 공간을 가지고 떨어져 있음. 실루엣 계수(Silhouetta coefficient) : 개별 데이터가 가지는 군집화 지표 해당 데이터가 같은 군집 내의 데이터와 얼마나 가깝게 군집 되어있고, 다른 군집에 있는 데이터와는 얼마나 멀리 분리 되어있는지 나타내는 지표 군집 간 비교시, 가장 가까운 군집만 비교해서, 그림에서 군집 C는 무시한다. 군집화 결과 판단..

머신러닝 및 딥러닝/머신러닝

오버샘플링 vs 언더샘플링

극도의 불균형 데이터세트의 학습 : 학습을 제대로 수행하기 어려움 오버샘플링, 언더샘플링 지도학습에서 극도로 불균형한 레이블 값의 분포로 인한 문제점을 해결하기 위해 적절한 학습 데이터를 확보하는 방안 오버샘플링 : SMOTE 방식 근접 값 기준으로 중심에 데이터를 생성하는데, 신규 증식하여 오버 샘플링한다. 이상치(Outlier) 데이터 이상치 데이터 : 전체데이터의 패턴에서 벗어난 이상 값을 가진 데이터 이상치로 인해 머신러닝 모델의 성능에 영향을 받는 경우가 발생하기 쉽다. 이상치를 찾는 방법 : IQR(Inter Quantile Range)방식, 사분위(Quantile) 값의 편차를 이용하는 기법, 박스플롯으로 시각화 사분위 : 전체 데이터를 정렬하고, 25% 구간으로 분할(순위제) IQR : Q..

머신러닝 및 딥러닝/머신러닝

스태킹 앙상블(Stacking Ensemble, 블렌딩)

스태킹 앙상블 개별 모델의 예측된 데이터 세트를 다시 기반으로 하여 학습하고 예측하는 메타 모델(블렌딩 모델이라고도함) 개별 알고리즘의 예측 결과 데이터세트를 각각 스태킹 형태로 결합하여 최종 메타 모델의 피처 데이터 세트와 피처 테스트 데이터 세트로 만들고 난 후, 별도의 ML 알고리즘으로 최종 학습을 수행하고 테스트 데이터를 기반으로 다시 최종 예측 수행하는 방식

머신러닝 및 딥러닝/머신러닝

Gradient Boosting(GBM), LGBM, XGBOOST

Gradient Boosting(GBM) 에이다부스트와 유사: 앙상블에 이전까지의 오차를 보정하면서 예측기를 순차적으로 추가 다른 점: 반복 시 샘플의 가중치를 추가하는 대신 이전 예측기가 만든 잔여 오차에 새로운 예측기를 학습 시킴. 가중치 업데이트를 경사 하강법으로 이용 오류값: 실제값 – 예측값 (잔여오차) 이 오류식이 최소화되도록 방향성을 가지고 반복적으로 가중치 값을 업데이트하는 방식 일반적으로 GBM이 랜덤 포레스트보다 예측 성능이 뛰어난 경우가 많지만, 수행 시간이 오래 걸리고 하이퍼파라미터 튜닝 노력도 더 필요함 XGBOOST LighGBM 장점 XGBOOST보다 학습에 걸리는 시간이 짧음 예측 성능은 비슷, 더 작은 메모리 사용량 보다 다양한 기능 제공 단점 데이터 세트가 적은 경우(10..

머신러닝 및 딥러닝/머신러닝

앙상블 이론

앙상블 기법(Ensemble methods) 다양한 분석 방법론을 조합해 하나의 예측 모형을 만드는 지도학습 방법론 앙상블은 다양한 분석 방법론을 조합하기 때문에 해석이 어렵지만, 보다 우수한 예측 성능을 갖는다는 장점을 가짐 이는 실생활에서 중요한 결정을 앞두고 여러가지 의견을 모으고 종합해 최종결정을 하는 것과 유사함 예측을 통해서 모델 4개가 예측치를 1, 1, 2, 1로 뽑았다면 다수결의 원칙으로 1을 예측 결과로 반환 앙상블의 특징 단일 모델의 약점을 다수의 모델들을 결합하여 보완 성능이 떨어지더라도 서로 다른 유형의 모델을 섞는 것이 전체 성능에 도움이 될 수 있음 예측기가 가능한 서로 독립적일 때 최고의 성능을 발휘함 서로 다른 알고리즘으로 학습시키면 서로 다른 종류의 오차를 만들 가능성이 ..

데이터 노하우/꿀팁

Scaling 꿀팁 + 과적합 쉬운 비교 방법

# 특성 데이터 스케일링 from sklearn.preprocessing import StandardScaler scaler = StandardScaler() scaler.fit(X_train) X_train_scaled = scaler.transform(X_train) X_test_scaled = scaler.transform(X_test)표준화 스케일링 시에는, train 데이터 셋을 기준으로 fit하고 test 데이터를 transform한다. # 평가 from sklearn.metrics import confusion_matrix, accuracy_score y_pred = dt.predict(X_train_scaled) train_score = accuracy_score(y_train, y_pre..

머신러닝 및 딥러닝/머신러닝

결정트리 이론

분류(classification)의 개요 학습 데이터로 주어진 피처와 레이블(결정값, 클래스값)을 머신러닝 알고리즘으로 학습해 모델을 생성하고, 이렇게 생성된 모델 에 새로운 데이터값이 주어졌을때 미지의 레이블을 예측하는 것. 기존 데이터가 어떤 레이블에 속하는지 패턴을 알고리즘으로 학습 -> 새롭게 관측된 데이터의 레이블을 판별 분류 알고리즘 나이브베이즈 - 베이즈 통계와 생성 모델 독립 변수와 종속 변수와 선형 관계성에 기반에 로지스틱 회귀 데이터 균일도에 따른 규칙 기반 결정 트리 개별 클래스 간의 최대 분류 마진을 효과적으로 찾아주는 SVM 근접 거리를 기준으로 하는 최소 근접 알고리즘(KNN nearest Neighbor) 심층 연결 기반의 신경망(딥러닝) 서로 다른(같은) 머신 러닝 알고리즘을..

머신러닝 및 딥러닝/머신러닝

로지스틱 회귀 이론(분류), 분류 성능평가지표

분류(classification) 대표적인 지도학습 유형의 머신러닝 기법 데이터에 주어진 클래스 값을 학습하여 각 클래스를 구별할 수 있는 패턴을 찾아 학습 모델을 생성하고, 새로운 데이터에 대한 클래스를 예측 로지스틱 회귀(Logistic Regression) 선형 회귀 방식을 ‘참/거짓'의 분류에 적용한 기법 선형 회귀와 동일하게 선형 방정식을 학습함 z = w1x1 + w2x2 + w3x3 ... + wnxn(선형회귀) 일 때 z를 0과 1사이의 확률 값을 만드려면? 승산비(odds)를 활용하여 시그모이드 함수를 유도한 뒤, 시그모이드 함수 z에 적용한다. 분석 기법의 이름 자체에 '회귀'라는 단어가 들어가 있지만 다른 회귀 모형의 목적과 다르게 분류를 수행한다. 즉, 로지스틱..

머신러닝 및 딥러닝/머신러닝

규제가 있는 선형회귀 - 라쏘, 릿지, 엘라스틱넷 회귀

좋은 모델이란? 현재 데이터를 잘 설명하고 미래 데이터를 잘 예측하는 모델 복잡한 모델의 문제점 분산이 높고(고분산, 과대적합) 노이즈가 심하다 모델 규제 : 각 도립변수(특성)의 계수를 작게 만들어 과대적합을 감소시키는 것 다항식의 차수를 감소시키는 것 선형회귀인 경우 : 모델의 가중치를 제한 릿지, 라쏘, 엘라스틱넷 회귀 모델 규제(regularization) 규제의 정의 손실함수(비용함수)에 임의의(alpha) 값으로 페널티를 부여해 회귀 계수 값의 크기를 감소시켜 과적합을 개선하는 방식 규제(정규화)의 목표 회귀 계수의 크기(가중치)를 제어해 과적합을 개선 규제의 효과 및 해석 과적합(고분산)된 파라미터 값에 대해 규제(페널티)를 부여하게 됨(계수를 작게하거나 높임) 규제를 추가하게 되면 규제가 ..

우상욱
데이터엔지니어스터디