Priyanka-Kumavat-At-TE's picture
Update app.py
60f8dcb
raw
history blame
7.2 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 *
# import os
# import sys
# from random import randint
# import time
# import uuid
# import argparse
# import pandas as pd
# import streamlit as st
# # Add the directory containing the required modules to sys.path
# sys.path.append(os.path.abspath("../supv"))
# from matumizi.util import *
# from mcclf import *
# # from markov_chain_classifier import MarkovChainClassifier
# 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 trainModel(mlfpath):
# model = MarkovChainClassifier(mlfpath)
# model.train()
# return model
# def predictModel(mlfpath, userID):
# model = MarkovChainClassifier(mlfpath)
# res = model.predict(userID)
# return res
# # Define MLF path and user ID
# mlfpath = "mcclf_cc.properties"
# userID = "56C96HWLR9ZO"
# # Load the Markov chain classifier model
# model = MarkovChainClassifier('cc.mod')
# # Perform prediction
# result = model.predict(userID)
# # Display the prediction result
# st.title("Conversion Prediction App")
# st.write("Welcome to the Conversion Prediction App. This app uses a Markov chain based classifier to predict whether a customer will convert or not based on their visit history.")
# st.write("Prediction Result for User ID: ", userID)
# st.write("Conversion: ", result)
import os
import streamlit as st
from mcclf import MarkovChainClassifier
def app():
st.title("Hugging Face Prediction App")
st.subheader("Enter User ID:")
userID = st.text_input("User ID")
# Add any other input fields or widgets for user interaction
# Add a "Predict" button
if st.button("Predict"):
# Load the Markov chain classifier model from the model folder
model_path = os.path.join("model", "cc.mod")
model = MarkovChainClassifier(model_path)
# Call the predict method on the loaded model
prediction = model.predict(userID)
# Display the prediction result
st.write("Prediction: ", prediction)
if __name__ == "__main__":
app()
# # if op == "Predict":
# # st.write("Enter the parameters to make a prediction:")
# # userID = st.text_input("User ID")
# # st.write("Click the button below to make a prediction")
# # if st.button("Predict"):
# # prediction = predictModel(mlfpath, userID)
# # st.write("Prediction:", prediction)
# # if __name__ == "__main__":
# # st.title("Conversion Prediction App")
# # st.write("Welcome to the Conversion Prediction App. This app uses a Markov chain based classifier to predict whether a customer will convert or not based on their visit history.")
# # op = st.sidebar.selectbox("Select Operation", ["Generate Visit History", "Train Model", "Predict"])
# # if op == "Generate Visit History":
# # st.write("Enter the parameters to generate the visit history:")
# # numUsers = st.number_input("Number of users", min_value=1, max_value=1000, value=100, step=1)
# # convRate = st.number_input("Conversion Rate (in percentage)", min_value=0, max_value=100, value=10, step=1)
# # label = st.checkbox("Add Labels")
# # st.write("Click the button below to generate the visit history")
# # if st.button("Generate"):
# # genVisitHistory(numUsers, convRate, label)
# # elif op == "Train Model":
# # st.write("Train the model using the following parameters:")
# # mlfpath = st.text_input("MLF Path")
# # if st.button("Train"):
# # trainModel(mlfpath)
# # elif op == "Predict":
# # st.write("Predict using the trained model:")
# # mlfpath = st.text_input("MLF Path")
# # userID = st.text_input("User ID")
# # if st.button("Predict"):
# # result = predictModel(mlfpath, userID)
# # st.write("Prediction Result: ", result)
# # 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()