[Python] PyCaret Windows 10 아나콘다 설치 방법

Page content

강의 홍보

1줄 요약

  • 관리자 실행해서 아나콘다 가상 환경을 만든 후, 새로운 패키지를 설치한다.

PyCaret 설치 방법 (Windows 10)

  • 윈도우 10 환경에서 PyCaret 패키지를 설치해봅니다.
  • 아나콘다 설치에 관한 내용은 생략합니다. 다만, 이 때, 필요한 것은 환경변수에 추가가 되어 있어야 합니다.

가상환경 설정

  • 새로운 가상환경을 만듭니다. (이게 제일 편합니다.)
  • 명령프롬프트를 관리자로 실행합니다.

  • 현재 경로는 아래와 같습니다.
!echo %cd%
C:\Users\hkit\Desktop\pycaret
  • 이 때, 적정한 경로로 이동한 후, 아래 명령어를 입력합니다.
  • 먼저 가상환경을 만듭니다.
$ conda create --name yourenvname python=3.8
  • 필자는 yourenvname 대신에, pycaret이라고 새로 이름을 지었습니다.
  • 그 후에, 가상환경에 접속합니다. (이게 중요합니다!)
$ conda activate yourenvname
  • 마지막으로 pycaret을 설치합니다.
$ pip install pycaret

  • PyCaret을 설치하기 위해서 Scikit-Learn, Pandas 등을 사전에 먼저 설치할 필요가 없습니다. 만약 설치가 되어 있다면, 버전 충돌이 발생할 수가 있습니다. 즉, 이 때에는 기존에 설치된 패키지를 삭제 후 재 설치를 해야 합니다. 이러한 번거로움을 겪지 않기 위해, 새로운 가상 환경을 아예 만들어 설치하는 것이 훨씬 간편합니다.
  • 만약 패키지 의존성을 확인하고 싶다면, 패키지 Github의 requirements.txt을 확인하시기를 바랍니다.
    • 즉, pip install pycaret과 함께, 자동으로 설치가 됩니다.

주피터 노트북 실행

  • 이제 주피터 노트북을 실행하여 Sample 코드를 작성해봅니다.
  • 아나콘다를 관리자로 실행한 후, 아래 화면처럼 방금전에 만든 가상환경 이름을 찾아서 클릭합니다.

  • 처음 작업하는 것이라면, 대개 아래 그림 처럼 Jupyter Notebook이나 Lab에서 설치를 먼저 해줘야 합니다.
  • 필자는 Jupyter Lab을 좋아하기 때문에, Jupyter Lab을 설치 실행합니다.

Tutorial 확인

from pycaret.datasets import get_data
dataset = get_data('credit')
dataset.shape
LIMIT_BAL SEX EDUCATION MARRIAGE AGE PAY_1 PAY_2 PAY_3 PAY_4 PAY_5 ... BILL_AMT4 BILL_AMT5 BILL_AMT6 PAY_AMT1 PAY_AMT2 PAY_AMT3 PAY_AMT4 PAY_AMT5 PAY_AMT6 default
0 20000 2 2 1 24 2 2 -1 -1 -2 ... 0.0 0.0 0.0 0.0 689.0 0.0 0.0 0.0 0.0 1
1 90000 2 2 2 34 0 0 0 0 0 ... 14331.0 14948.0 15549.0 1518.0 1500.0 1000.0 1000.0 1000.0 5000.0 0
2 50000 2 2 1 37 0 0 0 0 0 ... 28314.0 28959.0 29547.0 2000.0 2019.0 1200.0 1100.0 1069.0 1000.0 0
3 50000 1 2 1 57 -1 0 -1 0 0 ... 20940.0 19146.0 19131.0 2000.0 36681.0 10000.0 9000.0 689.0 679.0 0
4 50000 1 1 2 37 0 0 0 0 0 ... 19394.0 19619.0 20024.0 2500.0 1815.0 657.0 1000.0 1000.0 800.0 0

5 rows × 24 columns

(24000, 24)
data = dataset.sample(frac=0.95, random_state=786)
data_unseen = dataset.drop(data.index)
data.reset_index(inplace=True, drop=True)
data_unseen.reset_index(inplace=True, drop=True)
print('Data for Modeling: ' + str(data.shape))
print('Unseen Data For Predictions: ' + str(data_unseen.shape))
Data for Modeling: (22800, 24)
Unseen Data For Predictions: (1200, 24)
from pycaret.classification import *
exp_clf101 = setup(data = data, target = 'default', session_id=123)
Description Value
0 session_id 123
1 Target default
2 Target Type Binary
3 Label Encoded 0: 0, 1: 1
4 Original Data (22800, 24)
5 Missing Values False
6 Numeric Features 14
7 Categorical Features 9
8 Ordinal Features False
9 High Cardinality Features False
10 High Cardinality Method None
11 Transformed Train Set (15959, 88)
12 Transformed Test Set (6841, 88)
13 Shuffle Train-Test True
14 Stratify Train-Test False
15 Fold Generator StratifiedKFold
16 Fold Number 10
17 CPU Jobs -1
18 Use GPU False
19 Log Experiment False
20 Experiment Name clf-default-name
21 USI 7858
22 Imputation Type simple
23 Iterative Imputation Iteration None
24 Numeric Imputer mean
25 Iterative Imputation Numeric Model None
26 Categorical Imputer constant
27 Iterative Imputation Categorical Model None
28 Unknown Categoricals Handling least_frequent
29 Normalize False
30 Normalize Method None
31 Transformation False
32 Transformation Method None
33 PCA False
34 PCA Method None
35 PCA Components None
36 Ignore Low Variance False
37 Combine Rare Levels False
38 Rare Level Threshold None
39 Numeric Binning False
40 Remove Outliers False
41 Outliers Threshold None
42 Remove Multicollinearity False
43 Multicollinearity Threshold None
44 Clustering False
45 Clustering Iteration None
46 Polynomial Features False
47 Polynomial Degree None
48 Trignometry Features False
49 Polynomial Threshold None
50 Group Features False
51 Feature Selection False
52 Feature Selection Method classic
53 Features Selection Threshold None
54 Feature Interaction False
55 Feature Ratio False
56 Interaction Threshold None
57 Fix Imbalance False
58 Fix Imbalance Method SMOTE
best_model = compare_models()
Model Accuracy AUC Recall Prec. F1 Kappa MCC TT (Sec)
ridge Ridge Classifier 0.8254 0.0000 0.3637 0.6913 0.4764 0.3836 0.4122 0.0300
lda Linear Discriminant Analysis 0.8247 0.7634 0.3755 0.6794 0.4835 0.3884 0.4132 0.2630
gbc Gradient Boosting Classifier 0.8225 0.7790 0.3548 0.6800 0.4661 0.3721 0.4005 0.7580
ada Ada Boost Classifier 0.8221 0.7697 0.3505 0.6811 0.4626 0.3690 0.3983 0.1900
lightgbm Light Gradient Boosting Machine 0.8210 0.7750 0.3609 0.6679 0.4683 0.3721 0.3977 0.0890
rf Random Forest Classifier 0.8180 0.7618 0.3591 0.6531 0.4631 0.3645 0.3884 0.4350
et Extra Trees Classifier 0.8082 0.7381 0.3669 0.6010 0.4553 0.3471 0.3629 0.4750
lr Logistic Regression 0.7814 0.6410 0.0003 0.1000 0.0006 0.0003 0.0034 0.4370
knn K Neighbors Classifier 0.7547 0.5939 0.1763 0.3719 0.2388 0.1145 0.1259 0.2240
svm SVM - Linear Kernel 0.7285 0.0000 0.1003 0.1454 0.0957 0.0067 0.0075 0.1750
dt Decision Tree Classifier 0.7262 0.6134 0.4127 0.3832 0.3970 0.2204 0.2208 0.0680
qda Quadratic Discriminant Analysis 0.4761 0.5282 0.6208 0.2374 0.3399 0.0377 0.0478 0.1860
nb Naive Bayes 0.3760 0.6442 0.8845 0.2441 0.3826 0.0608 0.1207 0.0280
rf = create_model('rf')
plot_model(rf, plot = 'auc')

png

plot_model(rf, plot = 'confusion_matrix')

png

unseen_predictions = predict_model(rf, data=data_unseen)
unseen_predictions.head()
LIMIT_BAL SEX EDUCATION MARRIAGE AGE PAY_1 PAY_2 PAY_3 PAY_4 PAY_5 ... BILL_AMT6 PAY_AMT1 PAY_AMT2 PAY_AMT3 PAY_AMT4 PAY_AMT5 PAY_AMT6 default Label Score
0 100000 2 2 2 23 0 -1 -1 0 0 ... 567.0 380.0 601.0 0.0 581.0 1687.0 1542.0 0 0 0.74
1 380000 1 2 2 32 -1 -1 -1 -1 -1 ... 11873.0 21540.0 15138.0 24677.0 11851.0 11875.0 8251.0 0 0 0.98
2 200000 2 2 1 32 -1 -1 -1 -1 2 ... 3151.0 5818.0 15.0 9102.0 17.0 3165.0 1395.0 0 0 0.87
3 200000 1 1 1 53 2 2 2 2 2 ... 149531.0 6300.0 5500.0 5500.0 5500.0 5000.0 5000.0 1 1 0.67
4 240000 1 1 2 41 1 -1 -1 0 0 ... 1737.0 2622.0 3301.0 0.0 360.0 1737.0 924.0 0 0 0.80

5 rows × 26 columns

from pycaret.utils import check_metric
check_metric(unseen_predictions['default'], unseen_predictions['Label'], metric = 'Accuracy')
0.8142
  • 결론은 가상환경에서 설치를 해야 합니다. 가상환경을 잘 사용합시다.