Priyanka-Kumavat-At-TE's picture
Create app.py
51972b1
raw
history blame
No virus
3.17 kB
import os
import sys
from random import randint
import time
import uuid
import argparse
import streamlit as st
sys.path.append(os.path.abspath("../supv"))
from matumizi.util import *
from mcclf import *
def genVisitHistory(numUsers, convRate, label):
for i in range(numUsers):
userID = genID(12)
userSess = []
userSess.append(userID)
conv = randint(0, 100)
if (conv < convRate):
#converted
if (label):
if (randint(0,100) < 90):
userSess.append("T")
else:
userSess.append("F")
numSession = randint(2, 20)
for j in range(numSession):
sess = randint(0, 100)
if (sess <= 15):
elapsed = "H"
elif (sess > 15 and sess <= 40):
elapsed = "M"
else:
elapsed = "L"
sess = randint(0, 100)
if (sess <= 15):
duration = "L"
elif (sess > 15 and sess <= 40):
duration = "M"
else:
duration = "H"
sessSummary = elapsed + duration
userSess.append(sessSummary)
else:
#not converted
if (label):
if (randint(0,100) < 90):
userSess.append("F")
else:
userSess.append("T")
numSession = randint(2, 12)
for j in range(numSession):
sess = randint(0, 100)
if (sess <= 20):
elapsed = "L"
elif (sess > 20 and sess <= 45):
elapsed = "M"
else:
elapsed = "H"
sess = randint(0, 100)
if (sess <= 20):
duration = "H"
elif (sess > 20 and sess <= 45):
duration = "M"
else:
duration = "L"
sessSummary = elapsed + duration
userSess.append(sessSummary)
print(",".join(userSess))
def trainModel(mlfpath):
model = MarkovChainClassifier(mlfpath)
model.train()
def predictModel(mlfpath):
model = MarkovChainClassifier(mlfpath)
model.predict()
def main():
st.title("Markov Chain Classifier")
# Add input fields for command line arguments
op = st.selectbox("Operation", ["gen", "train", "pred"])
numUsers = st.slider("Number of Users", 1, 1000, 100)
convRate = st.slider("Conversion Rate", 1, 100, 10)
label = st.checkbox("Add Label")
mlfpath = st.text_input("ML Config File Path", value="false")
# Call functions based on selected operation
if op == "gen":
st.button("Generate Visit History", on_click=lambda: genVisitHistory(numUsers, convRate, label))
elif op == "train":
st.button("Train Model", on_click=lambda: trainModel(mlfpath))
elif op == "pred":
st.button("Predict Model", on_click=lambda: predictModel(mlfpath))
if __name__ == "__main__":
main()