let us not love with words or tongue but actions and truth.

IT/파이썬 36

autogluon으로 최적화 모델링 만들기

바로 이 전 글에서는 autogluon설치 해결 이슈에 대해 다뤘으니, 오늘은 autogluon이 무엇이고, 어떻게 사용하는지에 대해서 적어 보려고 합니다! autogluon은 다양한 알고리즘으로, customized parameter 범위내에서 최적의 알고리즘을 select 해주는 기법이라고 간단히 생각하시면 될 거같습니다. 제가 돌렸을 때 autogluon에서 사용했던 알고리즘들은 NeuralNetFastAI KNeighborDist WeightedEnsemble_L2 CatBoost LightGBM ExtraTressEntr ExtraTressGini KneighborsUnif RandomForestGini LightGBMLarge.... 등등 다양한 알고리즘을 사용해줬습니다. (자동으로) 그리고,..

IT/파이썬 2021.04.23

autogluon 설치 에러 이슈 해결방법

Jupyter Notebook에서 autogluon 설치 에러 이슈를 공유해보고자 합니다. (이것 때문에 너무 많은 시간을 뺐겼네요......ㅠㅠ) 우선 제가 쓰는 환경은 anaconda-client==1.7.2에 파이선 3.6버전 입니다. 우선 노트북환경에서 !pip install autogluon을 하시면 아래와 같은 에러메세지가 발생합니다. ERROR: Failed building wheel for ConfigSpaceFailed to build ConfigSpace ERROR: Could not build wheels for ConfigSpace which use PEP 517 and cannot be installed directly C++이나 C언어 관련 환경을 돌리기 위해 GCC가 미리 설치..

IT/파이썬 2021.04.22

선형보간법(interpolation)으로 결측치 채우기

파이썬에서 결측치를 채울 때 흔히 쓰는, fillna이라는 함수가 있지요. 단순히 fillna를 특정값으로 대체하기 위해서 쓰입니다. 빈칸에는 동일한 특정값으로 모두 대체되지요. 하지만!! 조금 더, 통계적인 방법으로 자연스럽게 결측치를 채워주는 방법도 있습니다. 바로 선형보간법을 활용하는 방법인데요. 우선 아래와 같은 데이터가 있다고 해볼게요. 각 ID그룹( AA/BB/CC/DD) 별로 3번째의 칸이 결측치입니다. (특정 중간값인 3이라는 ID를 새로 만들었다고 해 볼 수도 있지요) 선형 보간 법은, 이 값이 빈칸일때 그냥 fillna로 동일 값을 채우는 것 보다는 11.32와 12.01까지 직선으로 연결한 다음, 그 중간값을 채우는 것이 조금 더 맞다고 보는 방법이에요. 우린 이 데이터를 선형보간법을..

IT/파이썬 2021.04.21

데이터 추출하기 - 정규분포 vs. 임의복원추출

아래와 같은 데이터가 있을 때, random sampling을 통해 새로운 데이터를 생성하는 방법을 알아보겠습니다. 연습해볼 추출 방법은 아래와 같습니다. 1. 정규본포를 따르는 모형에서 random 추출하기(1000개) 2. 기존 데이터에서 임의 복원 추출하기(1000개) 우선 1번을 먼저 실습해볼게요! 정규분포모형에서 random 추출 1 new_col=np.random.normal(df['A_col'].mean(),df['A_col'].std(),1000) cs 위에는 A_col의 평균값과, 표준편차 값을 통해 분포를 생성하고 그 분포 내에서 random하게 1000개의 sample을 추출하여 new_col이라는 값에 넣어줍니다. 그 결과를 그래프로 그려보면 아래와 같아요. 1 2 3 plt.fig..

IT/파이썬 2021.04.19

[그래프] ROC커브 그리기

오늘은 ROC커브 그리기에 대해서 정리하려고 합니다. 1. Def로 정의해서 커브를 그리기2. 여러개의 커브를 같은 화면에 그리기 위의 두 방향으로 오늘 진행해보려 합니다. 우선 ROC커브에 대해서 간단히 설명해볼게요. 우선 Binary classification 경우, True를 모두 True로 맞춘 경우! ROC커브의 면적값은 1이 됩니다. 이 말이 무엇이냐...역시 그림을 보면 이해가 쉬울텐데! 아래 그림과 같이 분류모델링의 성능이 좋으면 점점 왼쪽 모서리로 그래프가 올라가는 것입니다. 이제 코드작성으로 들어가볼까요? 1. 함수로 정의해서 코드 짜기 1 2 3 4 def roc_curve_fnc(p): F_positive_rate, T_positive_rate, thresholds =roc_curv..

IT/파이썬 2021.04.17

Precision 과 Recall, 그리고 Accuracy

지난번에는 Roc 커브 그리기에 대해 배웠다면 이번에는 Precision Recall curve 그래프를 가기전에 Precision과 Recall, 그리고 Accuracy가 무엇인지 보고 가겠습니다!! 우선 Precion과 Recall 둘 다 모델의 성능을 평가하는 지표로 사용할 수 있습니다. 예를 들어, 암환자를 판별해 내는 모델이라고 해보죠. 실제 암환자를 분류해낸다면 True라고 가정합니다. 아래의 Confusion matrix (오차행렬)을 봐보겠습니다. 예측 True (암 O) 예측 False (암 X) 실측 True (암 O) TP FN 실측 False (암 X) FP TN 그렇다면 여기서 Precision의 수식과 설명은 아래와 같습니다. 즉, 제가 암환자라고 예측한 값이 실제 암환자들과 얼..

IT/파이썬 2021.04.15

Isolation Forest와 One-Class SVM

우리의 현실 데이터는 Imbalanced 된 data가 많이 존재하죠. 그래서 오늘은 Imbalanced 된 데이터를 분석하는 모델링에 대해서 알아보려고 합니다. 1. Isolation Forest 2. One Class SVM 위의 두개에 대해서 알아보려고 해요. 이론에 대해서 deep하게 설명하는 것은 저의 능력을 벗어나므로, 간단히 설명하면 실제 모든 True인 데이터에 대해 분류기를 training을 시킵니다. 그러다가 그 데이터셋과 다른 특징을 나타내는 data들이 들어오면 "기존것과의 패턴이 다르다"고 판단하여 분류해 내는 모형이라고 생각하시면 될거같아요. 이것이 바로 One Class Classification 모델의 기본 idea입니다. 두 모델의 가장 중요한 것은 hyper paramet..

IT/파이썬 2021.02.23

[그래프] 3D 그래프 그리기

오늘은 3D 그래프를 그려보겠습니다. 3D그래프에 줄 효과는, 색상 변경 산점도 색의 진하기 조정 View Angle 조정 입니다! 다른것은 이미 유사한 내용이겠지만 3번은 3D 그래프에만 존재하는 것이에요. 관련 라이브러리는 아래와 같아요. 1 from mpl_toolkits.mplot3d import Axes3D cs 코드도 아주 간단하답니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 fig = plt.figure(figsize=(10, 10)) ax = fig.add_subplot(111, projection='3d') for i in range(len(['orange', 'blue'])): ax.scatter(np.array(df['xx']), np.array(df['yy']),..

IT/파이썬 2021.02.19