Sätt ihop allt
Du har två farhågor om din pipeline på startupföretaget för arytmidetektering:
- Appen tränades på patienter i alla åldrar, men används främst av träningsanvändare som tenderar att vara unga. Du misstänker att det kan röra sig om domänskifte och vill därför bortse från alla exempel med patienter över 50 år.
- Du är fortfarande orolig för överanpassning, och vill se om det hjälper att göra slumpskogsklassificeraren mindre komplex och välja ut ett antal särdrag.
Du ska skapa en pipeline med ett steg för särdragsurval med SelectKBest() och en RandomForestClassifier, som båda redan har importerats. Du har även tillgång till GridSearchCV(), Pipeline, numpy som np och pickle. Data finns tillgänglig som arrh.
Den här övningen är en del av kursen
Att designa maskininlärningsflöden i Python
Övningsinstruktioner
- Skapa en pipeline med
SelectKBest()som stegftochRandomForestClassifier()som stegclf. - Skapa ett parameterrutnät för att finjustera
kiSelectKBest()ochmax_depthiRandomForestClassifier(). - Använd
GridSearchCV()för att optimera din pipeline mot det rutnätet och data som bara innehåller personer under 50 år. - Spara den optimerade pipelinen i en pickle-fil för produktion.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Create a pipeline
pipe = Pipeline([
('ft', ____), ('clf', ____(random_state=2))])
# Create a parameter grid
grid = {'ft__k':[5, 10], '____':[10, 20]}
# Execute grid search CV on a dataset containing under 50s
grid_search = ____(pipe, param_grid=grid)
arrh = arrh.____[____(arrh['age'] < 50)]
____.____(arrh.drop('class', 1), arrh['class'])
# Push the fitted pipeline to production
with ____('pipe.pkl', ____) as file:
pickle.dump(____, file)