1、安裝
pip install pycaret
在谷歌colab中還要運行:
from pycaret.utils import enable_colab enable_colab()
2、獲取數據
(1)利用pandas庫加載
import pandas as pd data = pd.read_csv('c:/path_to_data/file.csv')
(2)使用自帶的數據
from pycaret.datasets import get_data data = get_data('juice')
數據集列表:
Dataset | Data Types | Default Task | Target Variable | # Instances | # Attributes |
anomaly | Multivariate | Anomaly Detection | None | 1000 | 10 |
france | Multivariate | Association Rule Mining | InvoiceNo, Description | 8557 | 8 |
germany | Multivariate | Association Rule Mining | InvoiceNo, Description | 9495 | 8 |
bank | Multivariate | Classification (Binary) | deposit | 45211 | 17 |
blood | Multivariate | Classification (Binary) | Class | 748 | 5 |
cancer | Multivariate | Classification (Binary) | Class | 683 | 10 |
credit | Multivariate | Classification (Binary) | default | 24000 | 24 |
diabetes | Multivariate | Classification (Binary) | Class variable | 768 | 9 |
electrical_grid | Multivariate | Classification (Binary) | stabf | 10000 | 14 |
employee | Multivariate | Classification (Binary) | left | 14999 | 10 |
heart | Multivariate | Classification (Binary) | DEATH | 200 | 16 |
heart_disease | Multivariate | Classification (Binary) | Disease | 270 | 14 |
hepatitis | Multivariate | Classification (Binary) | Class | 154 | 32 |
income | Multivariate | Classification (Binary) | income >50K | 32561 | 14 |
juice | Multivariate | Classification (Binary) | Purchase | 1070 | 15 |
nba | Multivariate | Classification (Binary) | TARGET_5Yrs | 1340 | 21 |
wine | Multivariate | Classification (Binary) | type | 6498 | 13 |
telescope | Multivariate | Classification (Binary) | Class | 19020 | 11 |
glass | Multivariate | Classification (Multiclass) | Type | 214 | 10 |
iris | Multivariate | Classification (Multiclass) | species | 150 | 5 |
poker | Multivariate | Classification (Multiclass) | CLASS | 100000 | 11 |
questions | Multivariate | Classification (Multiclass) | Next_Question | 499 | 4 |
satellite | Multivariate | Classification (Multiclass) | Class | 6435 | 37 |
asia_gdp | Multivariate | Clustering | None | 40 | 11 |
elections | Multivariate | Clustering | None | 3195 | 54 |
Multivariate | Clustering | None | 7050 | 12 | |
ipl | Multivariate | Clustering | None | 153 | 25 |
jewellery | Multivariate | Clustering | None | 505 | 4 |
mice | Multivariate | Clustering | None | 1080 | 82 |
migration | Multivariate | Clustering | None | 233 | 12 |
perfume | Multivariate | Clustering | None | 20 | 29 |
pokemon | Multivariate | Clustering | None | 800 | 13 |
population | Multivariate | Clustering | None | 255 | 56 |
public_health | Multivariate | Clustering | None | 224 | 21 |
seeds | Multivariate | Clustering | None | 210 | 7 |
wholesale | Multivariate | Clustering | None | 440 | 8 |
tweets | Text | NLP | tweet | 8594 | 2 |
amazon | Text | NLP / Classification | reviewText | 20000 | 2 |
kiva | Text | NLP / Classification | en | 6818 | 7 |
spx | Text | NLP / Regression | text | 874 | 4 |
wikipedia | Text | NLP / Classification | Text | 500 | 3 |
automobile | Multivariate | Regression | price | 202 | 26 |
bike | Multivariate | Regression | cnt | 17379 | 15 |
boston | Multivariate | Regression | medv | 506 | 14 |
concrete | Multivariate | Regression | strength | 1030 | 9 |
diamond | Multivariate | Regression | Price | 6000 | 8 |
energy | Multivariate | Regression | Heating Load / Cooling Load | 768 | 10 |
forest | Multivariate | Regression | area | 517 | 13 |
gold | Multivariate | Regression | Gold_T+22 | 2558 | 121 |
house | Multivariate | Regression | SalePrice | 1461 | 81 |
insurance | Multivariate | Regression | charges | 1338 | 7 |
parkinsons | Multivariate | Regression | PPE | 5875 | 22 |
traffic | Multivariate | Regression | traffic_volume | 48204 | 8 |
3、設置環境
(1)第一步:導入模塊
pycaret提供以下6種模塊,當你導入相應的模塊之后,就將環境切換到了該環境下。
S.No | Module | How to Import |
1 | Classification | from pycaret.classification import * |
2 | Regression | from pycaret.regression import * |
3 | Clustering | from pycaret.clustering import * |
4 | Anomaly Detection | from pycaret.anomaly import * |
5 | Natural Language Processing | from pycaret.nlp import * |
6 | Association Rule Mining | from pycaret.arules import * |
(2)第二步:初始化設置
對於PyCaret中的所有模塊都是通用的,設置是開始任何機器學習實驗的第一步,也是唯一的必需步驟。 除默認情況下執行一些基本處理任務外,PyCaret還提供了廣泛的預處理功能,這些功能在結構上將普通的機器學習實驗提升為高級解決方案。 在本節中,我們僅介紹了設置功能的必要部分。 可以在此處找到所有預處理功能的詳細信息。 下面列出的是初始化設置時PyCaret執行的基本默認任務:
數據類型推斷:在PyCaret中執行的任何實驗都始於確定所有特征的正確數據類型。 設置函數執行有關數據的基本推斷,並執行一些下游任務,例如忽略ID和Date列,分類編碼,基於PyCaret內部算法推斷的數據類型的缺失值插補。 執行設置后,將出現一個對話框(請參見以下示例),其中包含所有特征及其推斷的數據類型的列表。 數據類型推斷通常是正確的,但是一旦出現對話框,用戶應查看列表的准確性。 如果正確推斷了所有數據類型,則可以按Enter鍵繼續,否則,請鍵入“ quit”以停止實驗。
如果您由於無法正確推斷一種或多種數據類型而選擇輸入“退出”,則可以在setup命令中覆蓋它們,方法是傳遞categorical_feature參數以強制分類類型,而numeric_feature參數則強制數字類型。 同樣,為了忽略某些功能以成為實驗的一部分,您可以在設置程序中傳遞ignore_features參數。
注意:如果您不希望PyCaret顯示確認數據類型的對話框,則可以在設置過程中以“ True”(靜默)方式傳遞為True,以執行無人看管的實驗。 我們不建議您這樣做,除非您完全確定推斷是正確的,或者您之前已經進行過實驗,或者正在使用numeric_feature和categorical_feature參數覆蓋數據類型。
數據清理和准備:設置功能會自動執行缺失值插補和分類編碼,因為它們對於任何機器學習實驗都是必不可少的。 默認情況下,平均值用於數字特征的插補,而最頻繁使用的值或模式用於分類特征。 您可以使用numeric_imputation和categorical_imputation參數來更改方法。 對於分類問題,如果目標不是數字類型,則安裝程序還將執行目標編碼。
數據采樣:如果樣本量大於25,000,PyCaret會根據不同的樣本量自動構建初步的線性模型,並提供可視化效果,以根據樣本量顯示模型的性能。 然后可以使用該圖來評估模型的性能是否隨樣本數量的增加而增加。 如果不是,您可以選擇較小的樣本量,以提高實驗的效率和性能。 請參見下面的示例,在該示例中,我們使用了pycaret存儲庫中的“銀行”數據集,其中包含45,211個樣本。
訓練測試拆分:設置功能還執行訓練測試拆分(針對分類問題進行了分層)。 默認的分割比例為70:30,但是您可以在設置程序中使用train_size參數進行更改。 僅在Train set上使用k倍交叉驗證,才能對PyCaret中已訓練好的機器學習模型和超參數優化進行評估。
將會話ID分配為種子:如果未傳遞session_id參數,則會話ID是默認生成的偽隨機數。 PyCaret將此id作為種子分發給所有函數,以隔離隨機效應。 這樣可以在以后在相同或不同的環境中實現可重現性。
以下是一些例子:
分類:
from pycaret.datasets import get_data diabetes = get_data('diabetes') # Importing module and initializing setup from pycaret.classification import * clf1 = setup(data = diabetes, target = 'Class variable')
回歸:
from pycaret.datasets import get_data boston = get_data('boston') # Importing module and initializing setup from pycaret.regression import * reg1 = setup(data = boston, target = 'medv')
聚類:
from pycaret.datasets import get_data jewellery = get_data('jewellery') # Importing module and initializing setup from pycaret.clustering import * clu1 = setup(data = jewellery)
異常檢測:
from pycaret.datasets import get_data anomalies = get_data('anomaly') # Importing module and initializing setup from pycaret.anomaly import * ano1 = setup(data = anomalies)
自然語言處理:
from pycaret.datasets import get_data kiva = get_data('kiva') # Importing module and initializing setup from pycaret.nlp import * nlp1 = setup(data = kiva, target = 'en')
關聯規則挖掘:
from pycaret.datasets import get_data france = get_data('france') # Importing module and initializing setup from pycaret.arules import * arules1 = setup(data = france, transaction_id = 'InvoiceNo', item_id = 'Description')