본문 바로가기
728x90
반응형
SMALL

Learning-driven Methodology108

[XGBoost] 보험료 예측 데이터셋 로드 import pandas as pd df = pd.read_csv('Medical_Insurance_dataset.csv') df.head() 원-핫 인코딩 df = pd.get_dummies(df) df.head() 데이터 전처리 # 훈련 데이터, 검증 데이터, 테스트 데이터 나누기 features = df[df.keys().drop('charges')].values outcome = df['charges'].values.reshape(-1, 1) from sklearn.model_selection import train_test_split train_features, test_features, train_target, test_target = train_test_split(feature.. 2022. 10. 5.
[XGBoost] 심혈관 질환 예측 데이터셋 로드 import pandas as pd df = pd.read_csv('Cardiovascular_Disease_dataset.csv') df.head() df['Presence or absence of cardiovascular disease'].value_counts() 0 35021 1 34979 Name: Presence or absence of cardiovascular disease, dtype: int64 데이터 전처리 # 훈련 데이터, 검증 데이터, 테스트 데이터로 나누기 features = df[df.keys().drop(['id','Presence or absence of cardiovascular disease'])].values outcome = df['Presence o.. 2022. 10. 5.
[XGBoost] 심장 질환 예측 데이터셋 로드 import pandas as pd df = pd.read_csv('Heart_Prediction_Dataset.csv') df.head() 원-핫 인코딩 df = pd.get_dummies(df) df.head() df['HeartDisease'].value_counts() 데이터 전처리 # 훈련 데이터, 검증 데이터, 테스트 데이터 나누기 features = df[df.keys().drop(['HeartDisease'])].values outcome = df['HeartDisease'].values.reshape(-1,1) from sklearn.model_selection import train_test_split train_features, test_features, train_ta.. 2022. 10. 4.
[XGBoost] 위스콘신 유방암 데이터 (3) wpbc 데이터셋 특징은 유방 종괴의 미세 바늘 흡인물 (FNA)의 디지털화된 이미지에서 계산된다. 이것은 이미지에 존재하는 세포 핵의 특성을 설명한다. (https://archive.ics.uci.edu/ml/datasets/Breast+Cancer+Wisconsin+%28Diagnostic%29) import pandas as pd df = pd.read_csv('wpbc_data.csv', header=None) df.head() # Outcome 값 변경 df.loc[df[1]=='N',1] = 0 df.loc[df[1]=='R',1] = 1 df[1] = df[1].astype('int32') df.describe() # 결측치 제거 및 Outcome 비율 확인 for key in df.keys.. 2022. 10. 4.
[XGBoost] 위스콘신 유방암 데이터 (2) wdbc 데이터셋 특징은 유방 종괴의 미세 바늘 흡인물 (FNA)의 디지털화된 이미지에서 계산된다. 이것은 이미지에 존재하는 세포 핵의 특성을 설명한다. (https://archive.ics.uci.edu/ml/datasets/Breast+Cancer+Wisconsin+%28Diagnostic%29) import pandas as pd df = pd.read_csv('wdbc_data.csv', header=None) df.head() # Outcome 값 변경 df.loc[df[1]=='B', 1] = 0 df.loc[df[1]=='M', 1] = 1 df[1] = df[1].astype('int32') df.describe() df.isnull().sum() 데이터 전처리 features = df[d.. 2022. 10. 4.
[XGBoost] 위스콘신 유방암 데이터 (1) 위스콘신 유방암 데이터 사이킷런에서는 UCI ML 유방암 위스콘신 (진단) 데이터 세트를 제공한다. 또한, 사본도 다운로드 가능하다. 라이브러리 설치 conda install -c conda-forge xgboost conda install -c conda-forge imbalanced-learn breast-cancer-wisconsin 데이터셋 로드 import pandas as pd df = pd.read_csv('breast-cancer-wisconsin.data.csv', names=['id','Clump Thickness','Uniformity of Cell Size','Uniformity of Cell Shape','Marginal Adhesion','Single Epithelial Cell.. 2022. 10. 4.
[Machine Learning] 앙상블 (Ensemble) 앙상블 (Ensemble) 여러 개의 알고리즘들이 이용하여 하나의 값을 예측하는 기법을 통칭하며, 대중적인 데이터 분석 알고리즘이다. 선형 회귀나 로지스틱 회귀는 가장 대중적인 알고리즘이고, 그 다음이 의사결정 트리와 앙상블 계열 알고리즘이다. 최근 머신/딥러닝 분야에서 딥러닝 다음으로 부스팅 (boosting) 알고리즘이 핵심적으로 사용된다. 메타 분류기 (meta-classifier)라고도 부른다. 메타 (meta)는 일종의 상위 또는 추상화라는 개념이다. 여러 분류기들을 모아 하나의 분류기를 만들어 이를 메타 분류기라고 부른다. 시간이 많이 소요되지만 비교적 좋은 성능을 낸다. 하나의 데이터를 넣고 이를 여러 모델에 학습시킨다. 테스트 데이터를 각 모델에 입력하고 투표 또는 여러 가중치 기법을 적용.. 2022. 10. 4.
[Machine Learning] LightGBM LightGBM LightGBM은 GBM 계열의 트리 분할 방법과 다르게 리프 중심 트리 분할 방식을 사용한다. 기존의 대부분 트리 기반 알고리즘은 트리의 깊이를 효과적으로 줄이기 위한 균형 트리 분할 방식을 사용한다. 리프 중심 트리 분할은 트리의 균형을 맞추지 않고, 최대 손실 값을 가지는 리프 노드를 지속적으로 분할하면서 트리의 깊이가 깊어지고 비대칭적인 규칙 트리가 생성 된다. 예측 오류 손실을 최소화 할 수 있다. LightGBM의 특징 더 빠른 학습과 예측 수행 시간 더 작은 메모리 사용 카테고리형 피처의 자동 변환과 최적 분할 대용량 데이터에 대한 뛰어난 예측 성능 및 병렬 컴퓨팅 기능을 제공 최근에는 GPU까지 지원 XGBoost보다 학습에 걸리는 시간이 훨씬 적으며, 메모리 사용량도 상대.. 2022. 10. 4.
[Machine Learning] SVM 회귀 SVM 회귀 SVM을 회귀에 적용하는 방법은 제한된 마진 오류 (도로 밖 샘플) 안에서 도로 안에 가능한 많은 샘플이 들어가도록 학습한다. 도로 폭은 하이퍼파라미터 ϵ로 조절한다. 마진 안에서 훈련 샘플이 추가되어도 모델의 예측에는 영향이 없게 되면, ϵ에 민감하지 않다고 한다. from sklearn.svm import LinearSVR svm_reg = LinearSVR(epsilon=1.5) svm_reg.fit(X, y) LinearSVR(C=1.0, dual=True, epsilon=1.5, fit_intercept=True, intercept_scaling=1.0, loss='epsilon_insensitive', max_iter=1000, random_state=None, tol=0.0001.. 2022. 9. 30.
[Machine Learning] 비선형 SVM 분류 비선형 SVM 분류 데이터가 선형적으로 분류가 안되는 경우에 사용한다. 그림을 보면, 빨강색과 파란색 직선 둘 다 완벽한 분류기가 되지 않았다. 이와 같이 실생활에서는 선형적으로 분류할 수 없는 데이터가 많다. 따라서, 데이터를 분류하기 쉽게 (선형적으로 분류 가능하도록) 만드는 작업을 진행해야 한다. 간단한 방법인 X1과 X1의 제곱 값을 X2에 대입한다. 빨강색 선과 같이 분명하게 나누어 진다. 이와 같이 Scikitlearn에서는 PolynomialFeatures 방식을 제공한다. example 초승달 모양의 2개의 클러스터 생성 선형적으로 분류 불가능 데이터를 선형적인 분류가 되게끔 변형이 필요함 import numpy as np from sklearn import datasets from skl.. 2022. 9. 30.
728x90
반응형
LIST