Status master:
Status pengembangan:
Informasi paket:
Untuk mencoba TPOT2 ( alpha ) silakan buka di sini!
TPOT adalah singkatan dari Alat Pengoptimalan Saluran Pipa Berbasis Pohon . Pertimbangkan TPOT sebagai Asisten Ilmu Data Anda. TPOT adalah alat Pembelajaran Mesin Otomatis Python yang mengoptimalkan alur pembelajaran mesin menggunakan pemrograman genetik.
TPOT akan mengotomatiskan bagian paling membosankan dari pembelajaran mesin dengan secara cerdas menjelajahi ribuan kemungkinan saluran guna menemukan saluran terbaik untuk data Anda.
Contoh pipeline Machine Learning
Setelah TPOT selesai mencari (atau Anda bosan menunggu), TPOT akan memberi Anda kode Python untuk pipeline terbaik yang ditemukan sehingga Anda dapat mengutak-atik pipeline dari sana.
TPOT dibuat di atas scikit-learn, jadi semua kode yang dihasilkannya akan terlihat familiar... jika Anda sudah familiar dengan scikit-learn.
TPOT masih dalam pengembangan aktif dan kami mendorong Anda untuk memeriksa kembali repositori ini secara teratur untuk mengetahui pembaruan.
Untuk informasi lebih lanjut tentang TPOT, silakan lihat dokumentasi proyek.
Silakan lihat lisensi repositori untuk informasi lisensi dan penggunaan TPOT.
Secara umum, kami memiliki lisensi TPOT agar dapat digunakan seluas mungkin.
Kami menyimpan petunjuk instalasi TPOT dalam dokumentasi. TPOT memerlukan instalasi Python yang berfungsi.
TPOT dapat digunakan pada baris perintah atau dengan kode Python.
Klik tautan yang sesuai untuk menemukan informasi lebih lanjut tentang penggunaan TPOT di dokumentasi.
Di bawah ini adalah contoh kerja minimal dengan pengenalan optik kumpulan data angka tulisan tangan.
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' )
Menjalankan kode ini akan menemukan pipeline yang mencapai akurasi pengujian sekitar 98%, dan kode Python yang sesuai harus diekspor ke file tpot_digits_pipeline.py
dan terlihat serupa dengan yang berikut:
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 )
Demikian pula, TPOT dapat mengoptimalkan saluran pipa untuk masalah regresi. Di bawah ini adalah contoh kerja minimal dengan praktik kumpulan data harga rumah di Boston.
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' )
yang akan menghasilkan pipeline yang mencapai sekitar 12,77 mean squared error (MSE), dan kode Python di tpot_boston_pipeline.py
akan terlihat serupa dengan:
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 )
Periksa dokumentasi untuk contoh dan tutorial lainnya.
Kami menyambut Anda untuk memeriksa masalah yang ada untuk mencari bug atau perbaikan. Jika Anda mempunyai ide untuk perpanjangan TPOT, harap ajukan masalah baru agar kita bisa mendiskusikannya.
Sebelum mengirimkan kontribusi apa pun, harap tinjau pedoman kontribusi kami.
Silakan periksa masalah terbuka dan tertutup yang ada untuk melihat apakah masalah Anda telah ditangani. Jika belum, ajukan masalah baru pada repositori ini sehingga kami dapat meninjau masalah Anda.
Jika Anda menggunakan TPOT dalam publikasi ilmiah, harap pertimbangkan untuk mengutip setidaknya salah satu makalah berikut:
Trang T.Le, Weixuan Fu dan Jason H.Moore (2020). Menskalakan pembelajaran mesin otomatis berbasis pohon ke data besar biomedis dengan pemilih rangkaian fitur. Bioinformatika .36(1): 250-256.
Entri 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 }
}
Randal S. Olson, Ryan J. Urbanowicz, Peter C. Andrews, Nicole A. Lavender, La Creis Kidd, dan Jason H. Moore (2016). Mengotomatiskan ilmu data biomedis melalui optimalisasi saluran pipa berbasis pohon. Penerapan Komputasi Evolusioner , halaman 123-137.
Entri 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 }
}
Randal S.Olson, Nathan Bartley, Ryan J. Urbanowicz, dan Jason H.Moore (2016). Evaluasi Alat Pengoptimalan Saluran Pipa Berbasis Pohon untuk Mengotomatiskan Ilmu Data. Prosiding GECCO 2016 , halaman 485-492.
Entri 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 } ,
}
Alternatifnya, Anda dapat mengutip langsung repositori dengan DOI berikut:
TPOT dikembangkan di Lab Genetika Komputasi di Universitas Pennsylvania dengan pendanaan dari NIH di bawah hibah R01 AI117694. Kami sangat berterima kasih atas dukungan NIH dan Universitas Pennsylvania selama pengembangan proyek ini.
Logo TPOT dirancang oleh Todd Newmuis, yang dengan murah hati menyumbangkan waktunya untuk proyek tersebut.