الحالة الرئيسية:
حالة التطوير:
معلومات الحزمة:
لتجربة TPOT2 ( alpha ) يرجى الذهاب هنا!
يرمز TPOT إلى أداة تحسين P ipeline O المستندة إلى الأشجار . خذ بعين الاعتبار TPOT مساعد علوم البيانات الخاص بك. TPOT هي أداة للتعلم الآلي الآلي من Python تعمل على تحسين مسارات التعلم الآلي باستخدام البرمجة الجينية.
سوف يقوم TPOT بأتمتة الجزء الأكثر مللاً من التعلم الآلي من خلال استكشاف الآلاف من خطوط الأنابيب الممكنة بذكاء للعثور على أفضل مسار لبياناتك.
مثال على خط أنابيب التعلم الآلي
بمجرد انتهاء TPOT من البحث (أو سئمت من الانتظار)، فإنه يزودك بكود Python لأفضل خط أنابيب وجده حتى تتمكن من تعديل المسار من هناك.
تم بناء TPOT على scikit-learn، لذا يجب أن تبدو جميع التعليمات البرمجية التي ينشئها مألوفة... إذا كنت معتادًا على scikit-learn، على أي حال.
لا يزال TPOT قيد التطوير النشط ونحن نشجعك على مراجعة هذا المستودع بانتظام للحصول على التحديثات.
لمزيد من المعلومات حول TPOT، يرجى الاطلاع على وثائق المشروع.
يرجى الاطلاع على ترخيص المستودع للحصول على معلومات الترخيص والاستخدام لـ TPOT.
بشكل عام، قمنا بترخيص TPOT لجعله قابلاً للاستخدام على نطاق واسع قدر الإمكان.
نحتفظ بتعليمات تثبيت TPOT في الوثائق. يتطلب TPOT تثبيتًا عمليًا لـ Python.
يمكن استخدام TPOT في سطر الأوامر أو مع كود Python.
انقر على الروابط المقابلة للعثور على مزيد من المعلومات حول استخدام TPOT في الوثائق.
يوجد أدناه مثال عملي بسيط مع التعرف البصري على مجموعة بيانات الأرقام المكتوبة بخط اليد.
from tpot import TPOTClassifier
from sklearn . datasets import load_digits
from sklearn . model_selection import train_test_split
digits = load_digits ()
X_train , X_test , y_train , y_test = train_test_split ( digits . data , digits . target ,
train_size = 0.75 , test_size = 0.25 , random_state = 42 )
tpot = TPOTClassifier ( generations = 5 , population_size = 50 , verbosity = 2 , random_state = 42 )
tpot . fit ( X_train , y_train )
print ( tpot . score ( X_test , y_test ))
tpot . export ( 'tpot_digits_pipeline.py' )
من المفترض أن يؤدي تشغيل هذا الرمز إلى اكتشاف مسار يحقق دقة اختبار تصل إلى 98% تقريبًا، ويجب تصدير كود Python المقابل إلى ملف tpot_digits_pipeline.py
وأن يبدو مشابهًا لما يلي:
import numpy as np
import pandas as pd
from sklearn . ensemble import RandomForestClassifier
from sklearn . linear_model import LogisticRegression
from sklearn . model_selection import train_test_split
from sklearn . pipeline import make_pipeline , make_union
from sklearn . preprocessing import PolynomialFeatures
from tpot . builtins import StackingEstimator
from tpot . export_utils import set_param_recursive
# NOTE: Make sure that the outcome column is labeled 'target' in the data file
tpot_data = pd . read_csv ( 'PATH/TO/DATA/FILE' , sep = 'COLUMN_SEPARATOR' , dtype = np . float64 )
features = tpot_data . drop ( 'target' , axis = 1 )
training_features , testing_features , training_target , testing_target =
train_test_split ( features , tpot_data [ 'target' ], random_state = 42 )
# Average CV score on the training set was: 0.9799428471757372
exported_pipeline = make_pipeline (
PolynomialFeatures ( degree = 2 , include_bias = False , interaction_only = False ),
StackingEstimator ( estimator = LogisticRegression ( C = 0.1 , dual = False , penalty = "l1" )),
RandomForestClassifier ( bootstrap = True , criterion = "entropy" , max_features = 0.35000000000000003 , min_samples_leaf = 20 , min_samples_split = 19 , n_estimators = 100 )
)
# Fix random state for all the steps in exported pipeline
set_param_recursive ( exported_pipeline . steps , 'random_state' , 42 )
exported_pipeline . fit ( training_features , training_target )
results = exported_pipeline . predict ( testing_features )
وبالمثل، يمكن لـ TPOT تحسين خطوط الأنابيب لحل مشكلات الانحدار. يوجد أدناه مثال عملي بسيط مع مجموعة بيانات أسعار المساكن في بوسطن.
from tpot import TPOTRegressor
from sklearn . datasets import load_boston
from sklearn . model_selection import train_test_split
housing = load_boston ()
X_train , X_test , y_train , y_test = train_test_split ( housing . data , housing . target ,
train_size = 0.75 , test_size = 0.25 , random_state = 42 )
tpot = TPOTRegressor ( generations = 5 , population_size = 50 , verbosity = 2 , random_state = 42 )
tpot . fit ( X_train , y_train )
print ( tpot . score ( X_test , y_test ))
tpot . export ( 'tpot_boston_pipeline.py' )
والذي يجب أن يؤدي إلى خط أنابيب يحقق حوالي 12.77 متوسط الخطأ التربيعي (MSE)، ويجب أن يبدو كود Python في tpot_boston_pipeline.py
مشابهًا لما يلي:
import numpy as np
import pandas as pd
from sklearn . ensemble import ExtraTreesRegressor
from sklearn . model_selection import train_test_split
from sklearn . pipeline import make_pipeline
from sklearn . preprocessing import PolynomialFeatures
from tpot . export_utils import set_param_recursive
# NOTE: Make sure that the outcome column is labeled 'target' in the data file
tpot_data = pd . read_csv ( 'PATH/TO/DATA/FILE' , sep = 'COLUMN_SEPARATOR' , dtype = np . float64 )
features = tpot_data . drop ( 'target' , axis = 1 )
training_features , testing_features , training_target , testing_target =
train_test_split ( features , tpot_data [ 'target' ], random_state = 42 )
# Average CV score on the training set was: -10.812040755234403
exported_pipeline = make_pipeline (
PolynomialFeatures ( degree = 2 , include_bias = False , interaction_only = False ),
ExtraTreesRegressor ( bootstrap = False , max_features = 0.5 , min_samples_leaf = 2 , min_samples_split = 3 , n_estimators = 100 )
)
# Fix random state for all the steps in exported pipeline
set_param_recursive ( exported_pipeline . steps , 'random_state' , 42 )
exported_pipeline . fit ( training_features , training_target )
results = exported_pipeline . predict ( testing_features )
تحقق من الوثائق لمزيد من الأمثلة والبرامج التعليمية.
نرحب بك للتحقق من المشكلات الحالية بحثًا عن الأخطاء أو التحسينات للعمل عليها. إذا كانت لديك فكرة لتمديد TPOT، فيرجى تقديم مشكلة جديدة حتى نتمكن من مناقشتها.
قبل تقديم أي مساهمات، يرجى مراجعة إرشادات المساهمة الخاصة بنا.
يرجى التحقق من القضايا المفتوحة والمغلقة الحالية لمعرفة ما إذا كانت مشكلتك قد تمت معالجتها بالفعل. إذا لم يكن الأمر كذلك، فقم بتقديم مشكلة جديدة في هذا المستودع حتى نتمكن من مراجعة مشكلتك.
إذا كنت تستخدم TPOT في منشور علمي، فيرجى التفكير في الاستشهاد بواحدة على الأقل من الأوراق التالية:
ترانج تي لو، ويكسوان فو، وجيسون إتش مور (2020). توسيع نطاق التعلم الآلي الآلي القائم على الأشجار ليشمل البيانات الطبية الحيوية الضخمة باستخدام محدد مجموعة الميزات. المعلوماتية الحيوية .36(1): 250-256.
إدخال BibTeX:
@article { le2020scaling ,
title = { Scaling tree-based automated machine learning to biomedical big data with a feature set selector } ,
author = { Le, Trang T and Fu, Weixuan and Moore, Jason H } ,
journal = { Bioinformatics } ,
volume = { 36 } ,
number = { 1 } ,
pages = { 250--256 } ,
year = { 2020 } ,
publisher = { Oxford University Press }
}
راندال إس. أولسون، ورايان جيه. أوربانوفيتش، وبيتر سي. أندروز، ونيكول أ. لافندر، ولا كريس كيد، وجيسون إتش. مور (2016). أتمتة علم البيانات الطبية الحيوية من خلال تحسين خطوط الأنابيب القائمة على الأشجار. تطبيقات الحساب التطوري ، الصفحات 123-137.
إدخال BibTeX:
@inbook { Olson2016EvoBio ,
author = { Olson, Randal S. and Urbanowicz, Ryan J. and Andrews, Peter C. and Lavender, Nicole A. and Kidd, La Creis and Moore, Jason H. } ,
editor = { Squillero, Giovanni and Burelli, Paolo } ,
chapter = { Automating Biomedical Data Science Through Tree-Based Pipeline Optimization } ,
title = { Applications of Evolutionary Computation: 19th European Conference, EvoApplications 2016, Porto, Portugal, March 30 -- April 1, 2016, Proceedings, Part I } ,
year = { 2016 } ,
publisher = { Springer International Publishing } ,
pages = { 123--137 } ,
isbn = { 978-3-319-31204-0 } ,
doi = { 10.1007/978-3-319-31204-0_9 } ,
url = { http://dx.doi.org/10.1007/978-3-319-31204-0_9 }
}
راندال إس. أولسون، وناثان بارتلي، وريان جيه. أوربانوفيتش، وجيسون إتش. مور (2016). تقييم أداة تحسين خطوط الأنابيب القائمة على الأشجار لأتمتة علوم البيانات. وقائع جيكو 2016 ، الصفحات 485-492.
إدخال BibTeX:
@inproceedings { OlsonGECCO2016 ,
author = { Olson, Randal S. and Bartley, Nathan and Urbanowicz, Ryan J. and Moore, Jason H. } ,
title = { Evaluation of a Tree-based Pipeline Optimization Tool for Automating Data Science } ,
booktitle = { Proceedings of the Genetic and Evolutionary Computation Conference 2016 } ,
series = { GECCO '16 } ,
year = { 2016 } ,
isbn = { 978-1-4503-4206-3 } ,
location = { Denver, Colorado, USA } ,
pages = { 485--492 } ,
numpages = { 8 } ,
url = { http://doi.acm.org/10.1145/2908812.2908918 } ,
doi = { 10.1145/2908812.2908918 } ,
acmid = { 2908918 } ,
publisher = { ACM } ,
address = { New York, NY, USA } ,
}
وبدلاً من ذلك، يمكنك الاستشهاد بالمستودع مباشرةً باستخدام DOI التالي:
تم تطوير TPOT في مختبر علم الوراثة الحاسوبية في جامعة بنسلفانيا بتمويل من المعاهد الوطنية للصحة بموجب المنحة R01 AI117694. نحن ممتنون للغاية لدعم المعاهد الوطنية للصحة وجامعة بنسلفانيا أثناء تطوير هذا المشروع.
تم تصميم شعار TPOT بواسطة تود نيومويس، الذي تبرع بوقته بسخاء للمشروع.