Python(215)
-
[TIP / Vis ][plotly] 변수 중요도 시각화 하기 (bar_polar , bar plot)
패키지 로드 import pandas as pd import numpy as np from sklearn.ensemble import RandomForestRegressor import plotly.express as px from sklearn.datasets import load_boston 데이터 준비 및 적합시키기. data_info = load_boston(return_X_y=False) print(data_info.keys()) # dict_keys(['data', 'target', 'feature_names', 'DESCR', 'filename']) x = pd.DataFrame(data_info["data"], columns = data_info["feature_names"]) y = pd..
2020.10.10 -
[Python] pandas에서 데이터 더 빠르고 가볍게 읽는 방법
This is because when a process requests for memory, memory is allocated in two ways: Contiguous Memory Allocation (consecutive blocks are assigned) NonContiguous Memory Allocation(separate blocks at different locations) Pandas는 RAM에 데이터를 적재하기 위해서 Contiguous Memory 방식을 사용한다. 왜냐하면 읽고 쓰는 것은 디스크보다 RAM에서 하는 것이 더 빠르게 때문이다. Reading from SSDs: ~16,000 nanoseconds Reading from RAM: ~100 nanoseconds 몇 가지 ..
2020.10.07 -
[변수 선택] Genetic Algorithm를 이용 (Python)
파이썬에서 변수 선택 시 다양한 알고리즘이 있다. sklearn에서 통계적인 방법론들을 사용한 scikit-learn.org/stable/modules/feature_selection.html 여러개의 메서드들도 있고, brouta와 같은 방법론이나, 아니면 feature importance, correlation을 이용한 방법 등 참 다양한 것 같다. 하지만 실제로 이러한 방법들이 통계적으로 유의미한 것을 검증해주는데, 결국 단별량적으로 바라보거나 큰 범위에서는 잘 찾기 어려울 수가 있다. 이럴 때 쓰기 좋은 다른 방법론으로는 GA가 있다. GA는 랜덤으로 여러개를여러 개를 뿌려보면서, 최적의 해를 찾는 과정에서 주로 쓰이는데, 이때 변수 선택도 여러 개를 뿌려고 실제로 해보면서, 좋은 변수들을 찾는 ..
2020.10.07 -
[변수 선택] BorutaShap 활용 (Python)
이전에도 Boruta를 이용해서 리뷰를 한 적이 있는데, 이번에는 Shap과 Brouta를 결합한 패키지를 찾게 되어서 공유한다. 해당 패키지의 장점이라고 생각하는 점은 일단 SHAP을 이용해서 변수 선택을 한다는 것이 가장 마음에 들었고, 그리고 변수 선택에서 사용하는 알고리즘이 Tree Based 알고리즘은 다 되긴 하는데, XGB , CATBOOST, DT(sklearn), RF(sklearn)... ensemble method(sklearn)이다. 특히 xgb나 catboost 같이 category feature를 변환하지 않고 변수 선택 모델링할 수 있는 패키지를 사용할 수 있어서, 실제로 category에 대한 영향도를 더 잘 표현해줄 것으로 기대한다. Algorithm Start by cre..
2020.10.06 -
[Python] package 설치 및 인터넷 없이 설치하는 방법
이전에 dependency를 고려해서 패키지를 설치하려고 이상한 코드를 짠 것이 기억이 난다.. 찾아보니 pip download가 dependency를 고려해서 설치하는 것 같다. 문제라고 생각하는 점은 패키지들 간에 dependency는 고려해주진 않을 것 같다. 암튼 패키지 설치는 인터넷은 필요 암튼 아래 코드처럼 하면 tensorflow==1.14.0 에 해당하는 dependency를 다 설치할 수 있다. pip download tensorflow==1.14.0 -d D:\pip_download 이 방법 말고도 requirements.txt를 이용해서도 설치할 수 있다. pip download -r requirements.txt -d D:\pip_download 이렇게 하면 requirements...
2020.09.16 -
[Python] python-constraint packages
python-constraint 패키지에서 제공하는 모듈을 소개 이 모듈 여러개를 적절하게 결합하면 제한 조건을 설정할 수 있을 것 같다. Type AllDifferentConstraint Constraint enforcing that values of all given variables are different problem = Problem() problem.addVariables(["a", "b"], [1, 2]) problem.getSolutions() # [{'a': 2, 'b': 2}, {'a': 2, 'b': 1}, {'a': 1, 'b': 2}, {'a': 1, 'b': 1}] problem.addConstraint(AllDifferentConstraint()) problem.getSolu..
2020.09.15 -
[Python] XAI 패키지 조사 해보기 (eXplainable AI)
현재 찾아본 것은 다음과 같음. 추가적으로 있다면 알려주세요! Python Packages (20.09.14) pkg name github DeepLearning interpret github.com/interpretml/interpret O? explainx github.com/explainX/explainx O?(not yet in tutorial)(20.09.14) XAI github.com/EthicalML/xai X SHAP github.com/slundberg/shap O LIME github.com/marcotcr/lime O CEML github.com/andreArtelt/ceml O DICE github.com/interpretml/DiCE O eli5 eli5.readthedocs.i..
2020.09.14 -
[Python] dictionary filter
dict에서 value나 key에 따라서 필터링을 하고 싶은 경우에 사용하면 좋을 것 같아서 공유 아래는 key안에 value의 길이가 3 이상인 애들만 추출하기 dict(filter(lambda elem: len(elem[1]) >=3, data.items())) 아래 참고! hello-bryan.tistory.com/77 [Python] Dictionary Filter Dictionary Filter score_dict = { 'sam':23, 'john':30, 'mathew':29, 'riti':27, 'aadi':31, 'sachin':28 } 이런 dictionary 가 있을 때 30점이 넘는 사람만 가지는 dictionary 를 얻고 싶다면, 기본 적으로 for.. hello-bryan.ti..
2020.09.12 -
[Python] Imbalanced를 고려한 ML 오픈 소스
imbalanced-learn.readthedocs.io/en/stable/metrics.html#additional-metrics-specific-to-imbalanced-datasets 7. Metrics — imbalanced-learn 0.5.0 documentation © Copyright 2016 - 2017, G. Lemaitre, F. Nogueira, D. Oliveira, C. Aridas Revision 12b2e0d2. imbalanced-learn.readthedocs.io
2020.09.02 -
[Vaex] Join on Multiple Columns
기존 제공하는 방식이나, Pandas에서 아는 방식으로는 안 되는 것을 확인하고 테스트 결과를 공유함. 특징 1. left와 right가 같은 이름인 경우 되지 않음. 특징 2. 한개의 key만 join이 가능함. print(train_input.get_column_names()) print(train_output.get_column_names()) ['ID', 'I', 'J', 'K', 'KHNC', 'KHND', 'KHNG', 'KHPC', 'KHPD', 'KHPG', 'TMC1', 'TMC2', 'TMD1', 'TMD2', 'TMG1', 'TMG2', 'KTG1C', 'KTG2C', 'KTG1D', 'KTG2D', 'KTG1G', 'KTG2G', 'KRC', 'KLC', 'KDC', 'RNITM',..
2020.09.02 -
[Python] pycaret 패키지
업데이트도 됬다고 하고, 한번 써보면 좋을 것 같아서 일단 글에 남겨둠 Scikitl-Learn 보다는 high level 로 제공하고 있다, 그러나 알고리즘도 더 다양한 것을 제공하고 gpu도 사용 가능해보인다. 쉽게 여러가지의 알고리즘을 한꺼번에 돌리거나 비교할 때 유용하다고 생각됨. link.medium.com/tsdJBkJJm9
2020.08.30 -
[Vaex 1.0.0-beta.6] Groupby 사용해보기
group_result = DATA.groupby(["reviewerID"]) group_result.agg("count") group_result = DATA.groupby(["reviewerID"],agg="count") 아직은 약간 제한이 되는 것 같다 실제로 custom function을 만들려고 하면, 아래쪽과 비슷하게 만들어야 하는데... 어려워 보인다. 일단 주어진 것을 활용해서 해보자. https://vaex.readthedocs.io/en/latest/_modules/vaex/agg.html#count vaex.agg — vaex 3.0.0 documentation © Copyright 2014, Maarten A. Breddels Revision 48531b5d. vaex.readthe..
2020.08.29