Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def predict_results(event):
- """
- Takes an event as a string parameter and uses a decision tree regressor
- to predict the top 3 results given medal and nationality of a competitor
- """
- filtered = df_converted[df_converted['Event'] == event]
- filtered = filtered.loc[:, ['Medal', 'Nationality', 'Result']]
- X = filtered.loc[:, filtered.columns != 'Result']
- y = filtered['Result']
- X = pd.get_dummies(X)
- (X_train, X_test, y_train, y_test) = train_test_split(X, y,
- test_size=0.35)
- model = DecisionTreeRegressor()
- model.fit(X_train, y_train)
- y_test_pred = model.predict(X_test)
- ordered = sorted(y_test_pred.tolist())
- if event in field:
- events.append(event)
- medals.append('Gold')
- mark.append(convert_from_seconds(ordered[2]))
- events.append(event)
- medals.append('Silver')
- mark.append(convert_from_seconds(ordered[1]))
- events.append(event)
- medals.append('Bronze')
- mark.append(convert_from_seconds(ordered[0]))
- else:
- events.append(event)
- medals.append('Gold')
- mark.append(convert_from_seconds(ordered[0]))
- events.append(event)
- medals.append('Silver')
- mark.append(convert_from_seconds(ordered[1]))
- events.append(event)
- medals.append('Bronze')
- mark.append(convert_from_seconds(ordered[2]))
- def simulate():
- """
- Predicts the top 3 results for every Olympic event
- Returns a dataframe containing the event name, medal type, and mark of
- each result
- """
- event_array = pd.unique(df_converted['Event'])
- for event in event_array:
- predict_results(event)
- return pd.DataFrame({'Event': events, 'Medal': medals,
- 'Result': mark})
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement