Niektóre z moich funkcji w modelu mogą zająć trochę czasu, więc aby szybko eksperymentować z wieloma funkcjami i parametrami, dobrze jest zapisać je na dysku do późniejszego wykorzystania.Zapisywanie części sklearn potoku
Jako konkretny przykład (wzięte z here), załóżmy, że mam następujący rurociągu:
pipeline = Pipeline([
('extract_essays', EssayExractor()),
('features', FeatureUnion([
('ngram_tf_idf', Pipeline([
('counts', CountVectorizer()),
('tf_idf', TfidfTransformer())
])),
('essay_length', LengthTransformer()),
('misspellings', MispellingCountTransformer())
])),
('classifier', MultinomialNB())
])
I chciałbym zmienić CountVectorizer()
do CountVectorizer(max_features=1000)
, to tylko CountVectorizer
, MultinomialNB
muszą być przeliczane od parametru lub transformacja zanim się zmieniła.
Czy można to w jakiś sposób zrealizować?
Czy pytasz, jak używać siatki strojenia podczas szkolenia potoku lub jak dostosować parametr w już wytrenowanym obiekcie rurociągu? – David
Nauka w systemie Scikit nie zapewnia wbudowanego rozwiązania, problem buforowania pośrednich kroków w potoku jest omawiany w dwóch kwestiach github: https://github.com/scikit-learn/scikit-learn/pull/2086 i https : //github.com/scikit-learn/scikit-learn/pull/3951. – ldirer
@ user3914041 Dzięki za referencje. Wygląda na to, że w mojej pierwszej próbie skasowałem części 'Memory.cache', więc przydało się już to w unikaniu powielania pracy. – simonzack