[변수 선택 및 생성]중요 변수 선택 및 파생 변수 만들기
·
분석 Python/Data Preprocessing
광고 한번만 눌러주세요 블로그를 운영하는데 있어서 동기부여가 됩니다.:) 모델링하다 보면 변수가 너무 많아서 무엇을 뽑을지 모를 때가 있다. 이럴 때 간단히 할 수 있는 방법은 칼럼 별 분포를 타깃별로 보고 분포가 차이가 얼마나 나는 지 확인 후 선택하는 방법이 있다. 여기서 한 것은 분포간 거리를 재는 divergence 중에서 wasserstein distance를 사용해서 해봤다. 특정 threshold를 부여하여 그것보다 차이가 날 경우 뽑는 방식으로 선택했다. 그리고 분포간 스케일이 다를 수 있기 때문에 min-max 함수를 통해 (-1,1)로 통일하였다. 실제 여기서 좀 문제가 되는 점이라고 할 수 있는 점은 스케일링을 어떻게 하는지에 따라서 distance가 다르게 나왔다. import nu..
[ Python ] smtplib을 활용한 메일 보내기 (이미지 , 텍스트 , gif)
·
분석 Python/구현 및 자료
도움이 되셨다면, 광고 한 번만 눌러주세요! 블로그 운영에 큰 힘이 됩니다! :) 학습이 완료되고 나서 log 같은 것을 확인하고 그래야 하는데, 이러면 역시 귀찮을 수 있기 때문에 완료되면 메일로 보내기로 만들어 봤다. 그래서 결과물로 저장하는 image와 log file을 gmail로 보내는 것을 구현해봤다. 파이썬에서 메일로 보낼 때 참고하시면 될 것 같다! import os , re import smtplib from email.mime.text import MIMEText from email.mime.image import MIMEImage from email.mime.multipart import MIMEMultipart import codecs ### Login Information logi..
Tensorflow 1.x Tabular Data Neural Network Modeling
·
분석 Python/Tensorflow
도움이 되셨다면 광고 한번만 눌러주세요! 블로그 운영에 큰 힘이 됩니다! : ) tabular data에 tensor flow 적용하기. 코드에서 눈여겨 봐야할 점 missing value mean 처리 selu activation + alpha dropout boosting algorithm idea 비슷하게 흉내내기(틀린 것을 더 학습시키는 구조) Weighted Cross-Entropy (compute class weight) Weight L2 Regularization category 데이터를 onehot을 하지 않고 label encoding 한 후 embedding 또는 onehot으로 처리함. label smoothing 적용 alpha = 0.95 y_one_hot = tf.add(alph..
LabelEncoder new class 대처하기
·
분석 Python/Scikit Learn (싸이킷런)
labelencoder를 사용하다 보면, new class에 대체하는 방법이 필요하다. 추가적인 클래스로 학습하기 어려운 이유는 뉴럴 네트워크 아키텍처를 학습시킬 때 추가 클래스 없을 때의 인코딩 값이 변하기 때문이다. 그러므로 여기서 대처 방법은 새로운 클래스 같은 경우 적은 클래스일 수 있으니 결측 클래스로 넣는 방법으로 진행한다. (만약 많다면, 다시 학습을 해야 할 필요성이 있을 것이다.) from sklearn.preprocessing import LabelEncoder import numpy as np le = LabelEncoder() a = ["paris", "paris", "tokyo", "amsterdam"] + [np.nan] le.fit(a) le.classes_ 여기에 새로운 클래..
[Python] tqdm nested progress bar 해보기
·
분석 Python/Visualization
분석하다보면 Loop를 돌릴 일이 많고, 얼마나 진행했는지 보고 싶을 때가 있다. nested 형태로 되어있는 형태에서 돌릴 때 폼이 예제다. jupyter notebook 버전과 command 버전 2개를 소개한다. 추가로 progress bar에 색깔을 넣어봤다. print를 중간에 하면 폼이 깨지기 때문에 보고자 하는 것은 log로 보내버렸다. Command Version import time import sys from tqdm import trange from IPython.display import clear_output import random from colorama import Fore import logging import logging.handlers log = logging.getL..
[ Python ] 2개 모델 확률값 사후 해석 시각화 그려보기
·
분석 Python/Visualization
2개의 모델에 대해서 행별로 확률 값 시각화해보기 그림의 목적 : 2개의 알고리즘이 각 row별로 어떻게 예측하는 것을 통해 헷갈려하는 행이 얼마나 많은지 한 개의 행에 대해서 2개의 모델이 다르게 예측하는지 확인하기 위해 EX) 한 행에 대해서 catboost 모델은 비 올 확률 0.9 lightgbm 모델은 0.1과 같이 상이하게 예측하는지 확인하기 위해 아래 흰색 박스 부분이 서로 다르게 예측하는 부분 plt.style.use('dark_background') fig , ax = plt.subplots(1 , figsize = (15,15)) classes = ["Not Rain", "Rain"] plt.scatter(lgb_prob , ae_catprob[:,1].ravel() , c = caty..
Probability Calibration for Imbalanced Dataset - 리뷰
·
관심있는 주제/Imbalanced data
도움이 되셨다면, 광고 한번만 눌러주세요. 블로그 관리에 큰 힘이 됩니다. 실제 데이터를 가지고 머신러닝을 하다 보면, 종종 불균형 데이터셋에 대해서 분석을 해야 할 때가 있다. 재표본 방법 특히 undersampling 방법은 보통 클래스 불균형을 극복하기 위해서 사용되는 방법 중 하나이다. 미디엄의 저자도 이것을 관련해서 썻다고 한다. (참고하면 될 것 같다!) (I also showed how those resampling methods worked on my Master dissertation in the other medium post) 그러나 이러한 방법을 시행하는 것은 train set과 test set에서 다른 class 분포 때문에 false positive(FP)가 증가하게 되는 경향이..
[ Python ] matplotlib tick 값 수정하기 (dir, help)
·
분석 Python/Visualization
도움이 되셨다면, 광고 한번만 눌러주세요. 블로그 관리에 큰 힘이 됩니다. 파이썬으로 시각화할 때 x 축이나 y축에 숫자가 아닌 다른 값을 넣고 싶을 때가 있다. R에서는 ggplot이 있어서 엄청 쉽게 할 수 있다 . 파이썬도 seaborn이나 plotly 같은 패키지를 써도 쉽게 할 수 있긴 하겠지만, 필자는 간단하게 해볼 때 matplotlib 라이브러리를 자주 쓰므로 궁금해서 찾아서 해봤다. 아래 그림에서는 tick을 수정할 껀데, font를 크게 하거나 작게 하거나 회전을 주거나 아니면 특정 값이면 색깔을 바꾸는 것을 시도했다. 개인적인 생각으로, 저렇게 특정 부분을 수정하는 것은 seaborn이나 plotly 보다는 matplotlib가 더 편하게 할 것이라고 생각한다. 이것 외에도 아래 코드..
[ Python ] 동적 변수 할당 및 불러들이기
·
분석 Python/구현 및 자료
도움이 되셨다면, 광고 한번만 눌러주세요. 블로그 관리에 큰 힘이 됩니다 ^^ R에서는 string 객체에 값을 넣은 다음에 할당할 수 있는 방법이 있다. assign 함수와 mget의 함수를 사용하면 된다. ##R ## string 객체에 값 할당하기 asssing("object1" , 5 ) ## 불러들이기 mget("object1") ### 5 이제까지 파이썬을 사용할 때 이러한 것에 대해서 몰라서 굉장히 불편하게 dict에 담아둬서 key값으로 불러내는 방법을 사용했다. 하지만 아직 더 나아가서 함수든 지 객체던지 모두 저장하는 방법에 대해서도 알고 싶다. R에는 save 함수가 있는데, 이러한 기능이 파이썬에서도 있는지 궁금하다. 파이썬에서는 sys 함수를 사용하면 동적 변수 할당이 가능하다는 ..
[ Python ] H2O XGBOOST Practice
·
분석 Python/구현 및 자료
도움이 되셨다면, 광고 한번만 눌러주세요. 블로그 관리에 큰 힘이 됩니다 ^^ R에서는 모델링을 하겠다고 하면 주로 H2O로 하였고, Python에서는 딥러닝 프레임워크나 scikit learn을 주로 사용했는데, H2O는 모델 결과값도 아주 잘 정리해주는 좋은 패키지이기도 하고, 다양한 모델을 거의 비슷한 문법으로 사용할 수 있는 장점이 있는 것 같다. 그래서 여러개의 모델 중 XGBOOST로 실습해봤다. 아래 URL 참고! # http://docs.h2o.ai/h2o/latest-stable/h2o-py/docs/_modules/h2o/estimators/xgboost.html # https://github.com/h2oai/h2o-tutorials/blob/master/best-practices/c..
[ 변수 처리] 결측치 대체 알고리즘 MissForest Imputation 연습
·
분석 Python/Data Preprocessing
MissForest로 결측치 대체를 하려고하는 것이 목적이다. 그래서 일단 임의의 데이터를 만들고 진행한다. from missingpy import MissForest import numpy as np import pandas as pd from sklearn.preprocessing import LabelEncoder tr1 = list("ABCD") tr2 = ['pooh', 'rabbit', 'piglet', 'Christopher'] va1 = list("ABCDE") va2 = ['pooh', 'rabbit', 'piglet', 'Christopher', "bird", "coco"] tr1_ = np.random.choice(tr1, 1000 , p=[0.5, 0.1, 0.1, 0.3]) va1..
[ Python ] logging 결과물 폴더 생성 후 압축 파일로 저장하기
·
분석 Python/구현 및 자료
도움이 되셨다면, 광고 한번만 눌러주세요. 블로그 관리에 큰 힘이 됩니다 ^^ 파이썬에서 Logging을 하고 싶을 때가 있다. 그냥 저장하는 것은 쉽지만, 그러다 보면, 용량을 과하게 차지하니 압축을 해서 저장을 하고 싶어 진다. 그리고 이것을 언제 저장했는지 구별하고 싶어서 압축 시점 날짜 폴더를 생성 후 그 안에 압축 파일을 넣어야 했다. 기존 방식으로는 안됬기 때문에 먼가 수정이 필요했다. 그리고 정답까지는 아니겠지만, 이런 식으로 하니 문제를 해결할 수 있었다 여기서는 분 단위로 저장하게 했다. import logging import gzip, zlib import os from datetime import datetime as dt def namer(name) : return name + "...

AI 도구

AI 도구 사이드 패널

아래 AI 서비스 중 하나를 선택하여 블로그를 보면서 동시에 사용해보세요.

API 키를 입력하세요API 키를 저장하려면 저장 버튼을 클릭하세요API 키가 저장되었습니다
API 키를 입력하세요API 키를 저장하려면 저장 버튼을 클릭하세요API 키가 저장되었습니다
API 키를 입력하세요API 키를 저장하려면 저장 버튼을 클릭하세요API 키가 저장되었습니다
URL과 모델을 입력하세요설정을 저장하려면 저장 버튼을 클릭하세요설정이 저장되었습니다