Python(215)
-
[Vaex 1.0.0-beta.6] Virtual Column 알아보기
Vaex에서는 DataFrame에서 변수를 파생할 경우에, virtual columns로 결과가 나온다. Virtual Column 같은 경우, 진짜 정상적인 컬럼처럼 행동하지만, 메모리를 차지 않는 컬럼이다. Vaex는 실제 컬럼 Virtual Column 차이에 구별이 없어져서 거의 진짜처럼 있다고 생각하고 처리하면 된다. 실제로 연산하기가 오래 걸릴 경우에는 pythran이나, numba를 활용할 수 있다. import pandas as pd import vaex DATA = vaex.open("./data/AMAZON_FASHION.hdf5") add the Columns (1) DATA["binding_1"] = DATA.func.where( DATA.overall == 5 , "good","b..
2020.08.29 -
[Python] re.sub에서 특정한 것만 바꾸고 싶을 때 하는 방법
전처리 앞으로 해야 할 것이 더 많지만, 일단 찾은 것까지만 기록해보고자 한다. import re string = '@@He11o Wor1d!' string = re.sub(r'([a-zA-Z])[@31!]+(?=[a-zA-Z])', r'\1', string) string string = 'n"t' re.sub(r'([a-zA-Z])"(?=[a-zA-Z])',r"\1'",string) string = '4"t' re.sub(r'([a-zA-Z1-9])"(?=[a-zA-Z])',r"\1'",string) string = 'n" ' re.sub(r'([a-zA-Z])" ',r"\1",string) 'n' string = ' "nL' re.sub(r'\s"([a-zA-Z]{2,})', r" \1",string..
2020.08.26 -
[sklearn] TSNE, MDS, SpectralEmbedding Estimator를 Pipeline 에 적용 시키는 방법
파이썬에서 Sklearn Pipeline 같은 경우 여러 개의 조합을 파이프라인을 만들어서 쉽게 돌릴 수가 있다. 그러나 돌릴 수 있는 것들은 그 모듈의 아규먼트 중에서 fit, transform을 가지고 있는 경우만 가능하다. 차원 축소 방법으로 TSNE, MDS, SpectralEmbedding을 적용하고자 했을 때 아쉽게도 Method가 transform이 없어서 적용할 수가 없다. 그래서 Sklearn estimator를 새로 만들어서 돌아갈 수는 있게 만든 것을 공유한다. 아래처럼 BaseEstimator와 TransformerMixin을 상속해주면(?) 가능하다 그리고 transform 에는 fit_transform을 써주면 된다. from sklearn.manifold import ( Loc..
2020.08.23 -
[Pytorch] LSTM AutoEncoder for Anomaly Detection
LSTM AutoEncoder를 사용해서 희귀케이스 잡아내기 LSTM AutoEncoder를 사용해서 희귀케이스 잡아내기 도움이 되셨다면, 광고 한번만 눌러주세요. 블로그 관리에 큰 힘이 됩니다 ^^ 우리 데이터는 많은데, 희귀 케이스는 적을 때 딥러닝 방법을 쓰고 싶을 때, AutoEncoder를 사용해서 희귀한 것에 대해�� data-newbie.tistory.com 기존에는 LSTM AutoEncoder에 대한 설명이라면, 이번에는 Pytorch로 구현을 해보고자 했다. 물론 잘못된 것이 있을 수 있으니, 피드백 주면 수정하겠다. Anomaley Detection을 당일날 맞추면 의미가 없으므로 시점을 이동시키는 작업을 하고, 이동시킨 데이터를 이용해 LSTM AutoEncoder를 진행해보고자 한..
2020.08.23 -
[Python] ConfigSpace 여러 기능 사용해보기
import ConfigSpace as CS config_space = CS.ConfigurationSpace() config_space.add_hyperparameter( CS.UniformIntegerHyperparameter('hidden_size_1', lower=50, upper=100)) config_space.add_hyperparameter( CS.UniformIntegerHyperparameter('hidden_size_2', lower=10, upper=50)) # config_space.add_hyperparameter( # CS.UniformIntegerHyperparameter('hidden_size_3', lower=10, upper=100)) config_space.add_hy..
2020.08.20 -
[seaborn] clustermap, heatmap으로 시각화하기
import seaborn as sns import sklearn from sklearn.datasets import load_diabetes , load_wine data_dict = load_wine() data = pd.DataFrame(data_dict.data,columns=data_dict.feature_names) lut = dict(zip(data_dict.target_names, "rbg")) change = dict(zip(np.unique(data_dict.target) , data_dict.target_names)) row_colors = pd.Series(data_dict.target).map(change).map(lut) change , lut Correlation Cluster..
2020.08.20 -
[Python] 딥러닝 학습하는 도중에 GPU 사용량 확인하기
이번 글은 실제 학습 동안에, GPU를 얼마나 사용하는지를 프린트해주는 것을 찾게 되어서 공유한다. 실제로는 nvidia-smi를 통해서 확인할 수 있지만, 도커를 쓰다보면 이러한 사용량을 알 수 없는 경우가 생긴다. 그래서 이번에는 학습하면서 중간 중간에 출력을 해줘서 실제로 사용 여부를 확인할 수가 있다. 추가적으로 threading을 사용해서 학습하면서, 병렬로 돌릴 수 있는 코드를 발견해서 공유한다. # Import MNIST data from tensorflow.examples.tutorials.mnist import input_data mnist = input_data.read_data_sets("./", one_hot=False) import tensorflow as tf import mat..
2020.08.19 -
[Python] H2O로 Randomforest 해보기
알고리즘 설정하기 import h2o h2o.init() from h2o.estimators import H2ORandomForestEstimator # Import the cars dataset into H2O: cars = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/junit/cars_20mpg.csv") ## 타겟 변수 (classfication) cars["economy_20mpg"] = cars["economy_20mpg"].asfactor() ## 타겟 변수 (regression) cars["economy"] = cars["economy"].asnumeric() predictors = ["displaceme..
2020.08.10 -
[Python] 결측치 시각화 missingno 사용하기
결측치에 대해서 시각적으로 보고 싶을 때 missingno가 쓸만한 것 같다. 해당 패키지를 자주 쓸것 같아서 간단하게 함수화를 해봤다. 보통 Train , Test를 나누니 그것을 기준으로 그려보는 것을 해봤다. import missingno as msno import matplotlib.pyplot as plt def msno_vis_train_test(train , test , graph_type = "bar" , fig_kws = {"figsize" : (20,5)}) : fig , ax = plt.subplots(1,2,figsize=fig_kws.get("figsize", (20,5)) ) axes = ax.flatten() if graph_type == "bar" : msno.bar(trai..
2020.07.23 -
[Pandas] data type별로 컬럼들을 사전 형태로 모으기
판다스에서 data type 별로 모으기 위해서 여러 가지를 시도할 수가 있다. data.sample(50).select_dtypes("float").columns.tolist() data.sample(50).select_dtypes("object").columns.tolist() 하지만 이런 것 말고 타입별로 한꺼번에 모으는 작업을 하고 싶다면 아래와 같은 함수를 사용하면 된다. def make_type_dct(df) : import re type_dct = {"float" : [], "int" : [], "object" :[] , "category" : []} r = re.compile(r"([A-Za-z\s]+)") [ type_dct[r.search(str(k)).group(1)].extend(l..
2020.07.23 -
Sarsa, Q-Learning , Expected Sarsa, Double Q-Learning 코드 비교하기
강화학습에서 빠르게 코드 비교를 해봤다. 거의 비슷하지만, 다른 부분이 있는 코드들인데, 어떤 식으로 다른지를 보고 싶었다. 막상 비교해보니 큰 차이는 없다는 것을 확인했다. Model-dependent and model-free reinforcement learning Model-dependent RL algorithms은 transition table이 있어야 작동을 한다. transition table은 에이전트가 존재하는 세계에서 성공하기 위해 필요한 모든 지식을 갖춘 테이블이라고 생각하면 된다. 당연히 그러한 테이블을 만드는 것은 매우 지루하며, 불가능하므로 모델 의존 학습 알고리즘은 실용적이지 못하다. Temporal Difference is a model-free reinforcement l..
2020.07.18 -
python EDA를 위한 자동 시각화 sweetviz 사용해보기
sweetviz를 통해서 데이터의 상관관계나 분포 그리고 통계치를 보여준다. 비슷한 패키지로는 pandas_profiling이 있다. 안정성면에서는 테스트 결과 pandas_profiling이 더 좋아 보였다. nan이 있으면 아직은 에러가 나는 이유가 있다. 그래도 좋은 점이 2가지 데이터셋을 비교한다던지, 뭔가를 비교한다고 했을 때 굉장히 유용해 보인다. 예를 들어 기존 타깃 0 , 1과 예측 타겟 0 ,1을 비교한다던지 하였을 때 어떻게 구성이 다른 지도 볼 수 있어 보이고 암튼 유용할 것 같아서 공유한다! import pandas as pd import sweetviz as sv df = pd.read_csv("./../../DATA/ENB2012_data.csv") ## 시각화 advert_re..
2020.07.18