scikit-learn(8)
-
개선된 OneHotEncoder 알아보기(v1.1 이후)
이번에 scikit-learn에서 버전을 업데이트하면서 OneHotEncoder가 수정이 됐는데, 일반적으로 카테고리 처리하는 데 고민이 되던 부분을 많이 개선해서 올려준 것 같다. 기존에는 하려면, 복잡하게 짜서 해야하지만 이제는 그러지 않아도 돼서 좋은 것 같다 ㅎㅎ https://scikit-learn.org/stable/modules/preprocessing.html#one-hot-encoder-infrequent-categories 6.3. Preprocessing data The sklearn.preprocessing package provides several common utility functions and transformer classes to change raw feature vec..
2022.05.25 -
Python) 회귀 분석 기본 사용법 정리(scikit-learn, statsmodels)
파이썬에서 Linear Regression 하는 것에서 기본적인 것이 Scikit-Learn이 있는데, 통계분석을 같이 하고 싶다면 statsmodels 을 쓰는 것이 더 좋다. 그래서 오랜만에 쓸 기회가 있어서 사용하다가 정리를 해봤다. 목차 Library import statsmodels.api as sm import numpy as np import pandas as pd from sklearn.linear_model import LinearRegression 연속형 변수 data spector_data = sm.datasets.spector.load(as_pandas=True) df = spector_data.raw_data y_col = ["GRADE"] x_cols = ["GPA","TUCE"..
2021.08.11 -
[sklearn] Ray를 사용하여 Regression Variable Selection 병렬로 하기
ray-project 중에서 tune-sklearn 패키지가 있는 것을 확인했다. 이 패키지는 scikit-learn 모델들을 ray를 사용해서 병렬 처리를 하게 해 준다. ray를 잘 쓰고 싶은 사람이기 때문에 테스트를 해봤다. 이번 글에서는 scikit-learn에서 제공하는 변수 선택법을 회귀 모델에 적용해서, 가장 최적의 변수를 찾기 위한 작업을 GridSearchCV로 진행해 본 것을 공유한다. 패키지 설치 방법 pip install tune-sklearn ray[tune] from sklearn.feature_selection import ( VarianceThreshold , SelectFromModel, SelectKBest,GenericUnivariateSelect,SelectPercen..
2020.08.20 -
scikit-learn 파이프라인 시각화 기능 사용 및 재사용 (pipeline visualization)
scikit-learn이 0.23이 되면서 가장 와 닿은 것인 pipeline을 시각화해주는 것이었다. 이번 글에서는 파이프라인 시각화하는 것과 실제로 아직 저장하는 것을 제공하지 않지만 재사용할 수 있는 방법에 대해서 고민해봤다. import pandas as pd import numpy as np import seaborn as sns import sklearn from sklearn.model_selection import train_test_split from sklearn.pipeline import make_pipeline from sklearn.preprocessing import OneHotEncoder from sklearn.linear_model import LogisticRegress..
2020.05.15 -
scikit-learn 0.23 이 되면서 변한 점
최근에 scikit-learn이 0.23으로 버전이 업데이트 됐다! 업데이트된 점에 정리해준 글이 있어 공유한다. 1. Python 3.6 or newer only 🐍 python 3.6 이상만 사용 가능하다! 2. Interactive pipeline graphics ⬇ pipeline을 시각화해주는 기능이 생겼다!! 저 시각화해주는 것은 html로 되어있는데 참 좋았다. 3. Poisson and gamma GLMs have arrived 🎉 linear_model.PoissonRegressor and linear_model.GammaRegressor 이 새로 나와서 이제 scipy를 쓸 필요가 없다 4. Calling fit() doesn’t show you everything 🚫 The fit()..
2020.05.15 -
LabelEncoder new class 대처하기
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_ 여기에 새로운 클래..
2020.01.04 -
[ Python ] Scikit-Learn Pipeline + RandomizedSearchCV + shap,eli5
광고 한 번만 눌러주세요! 블로그 운영에 큰 힘이 됩니다 ( Click my ADs! ) 이번 글에서는 전체 모델링을 하고 나서 모델 해석을 위해 eli5 , shap을 사용하려고 한다. 핵심 포인트는 Pipeline과 Shap , Eli5를 보시면 될 것 같다. 모델 해석으로는 lime, shap, eli5가 있는데, 다 좋지만 개인적으로 shap가 선호하므로, 좀 더 잘 알기 위해서 추후에 정리해보려고 한다. import numpy as np import pandas as pd import matplotlib.pyplot as plt import eli5 import shap import seaborn as sns plt.style.use('ggplot') # load the dataset from ..
2019.12.28 -
[ Python ] Scikit-Learn, 변수 전처리 Pipeline Transformer 만들어보기
광고 한 번만 눌러주세요! 블로그 운영에 큰 힘이 됩니다 (Click my ADs) 파이썬을 하다보면 Scikit-learn에 있는 전처리 코드를 많이 사용하게 된다. 개별적으로 다 처리하거나 퉁쳐서 할 수도 있지만, 이것을 Pipeline을 이용해서 깔끔하게 Pipeline으로 구성할 수 있다! 해당 글에서는 수치형 변수와 범주형 변수를 나눠서 처리하면서 각각 전처리를 다른 방식으로 진행하고 바꾸는 것에 대해서 해본 것을 공유하려고 한다. import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns plt.style.use('ggplot') # load the dataset from sklearn...
2019.12.28