파이썬 머신러닝 데이터 정규화 https://bigcat5312.tistory.com/80 파이썬 머신러닝 지도학습 - 데이터 분리 (sklearn - train_test_split import from sklearn.model_selection import train_test_split train_test_split 데이터를 머신러닝에 사용하기 위해서 학습 데이터와 테스트 데이터를 무작위로 분리하는 함수로 train_test_split(x , y, test_size = or train_siz bigcat5312.tistory.com 코드를 사용하여 x_train , x_test를 가지고 있는 상태로 학습시킬 데이터인 x_train을 기준으로 정규화를 진행한다 정규화 공식은 (x - xmin ) / (xmax -xmin)이다 x_mi.. 2023. 9. 21. 파이썬 머신러닝 지도학습 - 하이퍼파라미터 튜닝 (grid search, random search) 하이퍼파라미터 튜닝 하이퍼파라미터란 앞의 여러 모델에 설명한 여러 파라미터를 직접 사용자가 설정하는 것을 말하며 하이퍼파라미터 튜닝은 성능을 최적화 하기 위해 파라미터를 조정하는 것을 말한다 Grid Search & Random Search Grid Search는 파라미터의 범위를 지정하고 해당 범위의 모든 파라미터를 입력하여 범위 내에서 가장 결과가 좋은 파라미터를 자동으로 학습한다 Random Search 는 Grid Search에서 범위 내의 모든 파라미터를 사용하는 것이 아니라 지정한 수 만큼의 파라미터를 범위 내에서 랜덤으로 가져와 그 중에서 가장 결과가 좋은 파라미터를 자동으로 학습한다 당연하지만 grid search를 사용하는 것이 더욱 정확한 결과를 얻을 수 있겠지만 그 만큼 시간이 더 걸.. 2023. 9. 17. 파이썬 머신러닝 지도학습 - 모델의 성능 예측 k분할 교차 검증(K-Fold Cross Validation) K-Fold Cross Validation 데이터를 k 개로 나누고 평가에 한 번, 학습에 k-1번 사용하면서 총 k번의 성능 검증을 한다 사용 방법 임포트 from sklearn.model_selection import cross_val_score 코드로 임포트를 한 다음 아무 모델이나 하나를 선언한다 ex) from sklearn.linear_model import LogisticRegression model = LogisticRegression() 검증하기 cv_score = cross_val_score(model, x_train, y_train, cv=, scoring =) 코드를 사용해 k 분할 교차 검증을 시행한다 cv=에는 2 이상의 원하는 분할 개수를 적어주면 된다 scoring = 은 성.. 2023. 9. 17. 파이썬 머신러닝 지도학습 - 앙상블 - XGBoost (분류, 회귀) XGBoost 부스팅 기반의 알고리즘으로 그라디언트 부스팅 방식을 사용 결측치를 자체적으로 처리 할 수 있음 반복 실행시간에 따른 정확도를 확인하여 조기 중단이 가능 모델링 #분류 from xgboost import XGBClassifier #회귀 from xgboost import XGBRegressor 코드로 임포트 한 다음 #분류 model = XGBClassifier(n_estimators= , max_depth= ) #회귀 model = XGBRegressor(n_estimators= , max_depth= ) 로 모델을 선언한다 각각 파라미터는 max_depth: 트리의 최대 깊이를 지정 (기본값 = 6) n_estimators : 만들어질 decision tree의 수 , (기본값=100) .. 2023. 9. 17. 파이썬 머신러닝 지도학습 - 앙상블 -Random forest(랜덤 포레스트) (분류, 회귀) Random forest 특성을 무작위로 선택하고, 샘플링도 랜덤(샘플링은 부트스트랩)으로 지정해 여러 종류의 decision tree를 만들어낸 다음 모델들의 결과를 통해 최종 값을 선정 ->분류의 경우 다수결에 따라 결정, 회귀 문제의 경우 평균 모델링 #분류 from sklearn.ensemble import RandomForestClassifier #회귀 from sklearn.ensemble import RandomForestRegressor 코드로 임포트 한 다음 #분류 model = RandomForestClassifier(n_estimators= ,criterion = , max_depth= ,min_samples_split= , min_samples_leaf = , max_features.. 2023. 9. 17. 파이썬 머신러닝 지도학습 - 앙상블 앙상블 이해 앙상블은 여러 기본 모델을 조합하여 성능을 상승 시키는 방법으로 모델의 정확도는 높지만 설명이 어렵다 종류 배깅 - 같은 유형의 알고리즘을 사용해 부트스트랩(샘플을 만들고 데이터를 다시 집어놓고 다시 샘플을 만드는 식) 한 데이터로 최종 결과를 얻는 방식 ex)랜덤 포레스트 (Random forest) 부스팅 - 같은 유형의 알고리즘을 사용하여 순차적 학습을 수행 -> 이전 모델이 예측에 실패한 데이터에 가중치를 부여하여 다음 모델에서 계속 학습과 예측을 진행 ex) XGBoost , LightGBM 스태킹 - 서로 다른 종류의 여러 모델을 조합해 최고의 성능을 내는 모델을 만드는 방식 보팅 - 서로 다른 알고리즘의 예측결과를 통해 결과를 결정함 소프트 = 확률의 평균을 구하고 확률이 높은 .. 2023. 9. 16. 파이썬 머신러닝 지도학습 - Logistic Regression(로지스틱 회귀) (분류) Logistic Regression 로짓(logit) 함수 또는 시그모이드(sigmoid) 함수를 사용하여 확률을 예측후 확률을 임계값을 기준으로 분류함 (일반적으로 0.5) 모델링 from sklearn.linear_model import LogisticRegression 코드로 임포트 한 다음 model = LogisticRegression() 으로 모델을 선언한다 학습 및 예측 model.fit(x_train, y_train) fit매소드로 학습을 시킬 수 있다 이후 y_pred = model.predict(x_test) 코드를 사용하여 완성된 모델에 x_test를 넣어 예측값을 생성 할 수 있다 평가 from sklearn.metrics import * 코드로 평가 함수들을 임포트 한 다음 htt.. 2023. 9. 16. 파이썬 머신러닝 지도학습 - Decision Tree(결정 트리) (분류, 회귀) Decision Tree 특정 변수에 대한 의사결정 규칙을 트리 형태로 계속 분류하는 모델 정보 이득이 큰 순서대로 트리를 분류함 Root Node(뿌리 마디): 전체 자료를 갖는 시작하는 마디 Child Node(자식 마디): 마디 하나로부터 분리된 2개 이상의 마디 Parent Node(부모 마디): 주어진 마디의 상위 마디 Terminal Node(끝 마디): 자식 마디가 없는 마디(=Leaf Node) Internal Node(중간 마디): 부모 마디와 자식 마디가 모두 있는 마디 Branch(가지): 연결되어 있는 2개 이상의 마디 집합 Depth(깊이): 뿌리 마디로부터 끝 마디까지 연결된 마디 개수(위 그림의 경우 4) 전체 샘플 623개를 sex_male 2023. 9. 16. 파이썬 머신러닝 지도학습 - K-Nearest Neigbor(KNN) (분류, 회귀) K-Nearest Neigbor 데이터를 가장 가까운 거리의 k개의 이웃과 비교하여 결정하는 알고리즘으로 k의 값이 커지면 커질수록 전체평균에 가까워진다 거리를 계산 할 때 데이터의 크기를 기준으로 거리를 계산하기 때문에 만약 입력 데이터와 예측 데이터의 크기 범위가 다르다면 서로의 거리 계산이 달라 질 수 있기 때문에 데이터의 정규화가 필요하다 데이터의 정규화 https://bigcat5312.tistory.com/80 파이썬 머신러닝 지도학습 - 데이터 분리 (sklearn - train_test_split import from sklearn.model_selection import train_test_split train_test_split 데이터를 머신러닝에 사용하기 위해서 학습 데이터와 테스트 .. 2023. 9. 16. 파이썬 머신러닝 지도학습 - 데이터 분리 (sklearn - train_test_split import from sklearn.model_selection import train_test_split train_test_split 데이터를 머신러닝에 사용하기 위해서 학습 데이터와 테스트 데이터를 무작위로 분리하는 함수로 train_test_split(x , y, test_size = or train_size =, random_state = , shuffle= , stratify = ) 형태로 사용한다 기본적으로는 (x,y , test_size=)정도만 입력해도 된다 각각의 옵션을 설명하자면 test_size = 전체 데이터에서 테스트로 사용할 데이터의 비율 ex 30% = 0.3 random_state = 데이터 분할에 사용되는 난수 생성의 시드 shuffle = 데이터를 분할하기 전에 섞을지 .. 2023. 9. 16. 이전 1 2 다음