-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.py
58 lines (45 loc) · 1.8 KB
/
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import streamlit as st
import pickle
import pandas as pd
teams = ['Sunrisers Hyderabad',
'Mumbai Indians',
'Royal Challengers Bangalore',
'Kolkata Knight Riders',
'Kings XI Punjab',
'Chennai Super Kings',
'Rajasthan Royals',
'Delhi Capitals']
cities = ['Hyderabad', 'Bangalore', 'Mumbai', 'Indore', 'Kolkata', 'Delhi',
'Chandigarh', 'Jaipur', 'Chennai', 'Cape Town', 'Port Elizabeth',
'Durban', 'Centurion', 'East London', 'Johannesburg', 'Kimberley',
'Bloemfontein', 'Ahmedabad', 'Cuttack', 'Nagpur', 'Dharamsala',
'Visakhapatnam', 'Pune', 'Raipur', 'Ranchi', 'Abu Dhabi',
'Sharjah', 'Mohali', 'Bengaluru']
pipe = pickle.load(open('pipe.pkl', 'rb'))
st.title('IPL Predictor')
col1, col2 = st.columns(2)
with col1:
batting_team = st.selectbox('Select the batting team',sorted(teams))
with col2:
bowling_team = st.selectbox('Select the bowling team', sorted(teams))
selected_city = st.selectbox('Select Host City', sorted(cities))
target = st.number_input("Target")
col3, col4, col5 = st.columns(3)
with col3:
score = st.number_input('Score')
with col4:
overs = st.number_input('Overs Completed')
with col5:
wickets = st.number_input('Wicket Out')
if st.button('Predict Probability'):
runs_left = target - score
balls_left = 120 - (overs*6)
wicket = 10-wickets
crr = score/overs
rrr = (runs_left*6)/balls_left
input_df = pd.DataFrame({'batting_team':[batting_team],'bowling_team':[bowling_team],'city':[selected_city],'runs_left':[runs_left],'balls_left':[balls_left],'wickets':[wickets],'total_runs_x':[target], 'crr':[crr], 'rrr': [rrr] })
result = pipe.predict_proba(input_df)
loss = result[0][0]
win = result[0][1]
st.text(batting_team+"- "+str(round(win*100))+"%")
st.text(bowling_team+"- "+str(round(loss*100))+"%")