Spaces:
Sleeping
Sleeping
| import pickle | |
| import numpy as np | |
| import pandas as pd | |
| import gradio as gr | |
| # Load the pre-trained model | |
| with open('crimson_nebula.pkl', 'rb') as f: | |
| model = pickle.load(f) | |
| # Define the prediction function | |
| def predict_crimson_nebula(*inputs): | |
| input_data = dict(zip(feature_names, inputs)) | |
| input_df = pd.DataFrame([input_data]) | |
| prediction = model.predict(input_df) | |
| return prediction[0] | |
| # Define features name | |
| feature_names = [ | |
| "age", | |
| "gender", | |
| "country", | |
| "urban_rural", | |
| "income_level", | |
| "employment_status", | |
| "education_level", | |
| "relationship_status", | |
| "has_children", | |
| "exercise_hours_per_week", | |
| "sleep_hours_per_night", | |
| "diet_quality", | |
| "smoking", | |
| "alcohol_frequency", | |
| "perceived_stress_score", | |
| "body_mass_index", | |
| "blood_pressure_systolic", | |
| "blood_pressure_diastolic", | |
| "daily_steps_count", | |
| "weekly_work_hours", | |
| "hobbies_count", | |
| "social_events_per_month", | |
| "books_read_per_year", | |
| "volunteer_hours_per_month", | |
| "travel_frequency_per_year", | |
| "daily_active_minutes_instagram", | |
| "sessions_per_day", | |
| "posts_created_per_week", | |
| "reels_watched_per_day", | |
| "stories_viewed_per_day", | |
| "likes_given_per_day", | |
| "comments_written_per_day", | |
| "dms_sent_per_week", | |
| "dms_received_per_week", | |
| "ads_viewed_per_day", | |
| "ads_clicked_per_day", | |
| "time_on_feed_per_day", | |
| "time_on_explore_per_day", | |
| "time_on_messages_per_day", | |
| "time_on_reels_per_day", | |
| "followers_count", | |
| "following_count", | |
| "uses_premium_features", | |
| "notification_response_rate", | |
| "account_creation_year", | |
| "average_session_length_minutes", | |
| "content_type_preference", | |
| "preferred_content_theme", | |
| "privacy_setting_level", | |
| "two_factor_auth_enabled", | |
| "biometric_login_used", | |
| "linked_accounts_count", | |
| "subscription_status", | |
| "user_engagement_score" | |
| ] | |
| # Define the input and output components | |
| input_components = [ | |
| gr.Slider(10, 70, step=1, label="Age"), | |
| gr.Dropdown(["Male", "Female", "Non-binary", "Prefer not to say"], label="Gender"), | |
| gr.Dropdown(["United States", "India", "Brazil", "Other", "United Kingdom", "Canada", "Australia", "South Korea", "Germany", "Japan"], label="Country"), | |
| gr.Dropdown(["Urban", "Suburban", "Rural"], label="Urban/Rural"), | |
| gr.Dropdown(["Low", "Lower-middle", "Middle", "Upper-middle", "High"], label="Income Level"), | |
| gr.Dropdown(["Full-time employed", "Student", "Freelancer", "Unemployed", "Part-time", "Retired"], label="Employment Status"), | |
| gr.Dropdown(["Bachelor's", "High School", "Some College", "Master's", "Other", "PhD"], label="Education Level"), | |
| gr.Dropdown(["Single", "Married", "In a relationship", "Divorced", "Widowed"], label="Relationship Status"), | |
| gr.Dropdown(["False", "True"], label="Has Children"), | |
| gr.Slider(0, 20, step=1, label="Exercise Hours per Week"), | |
| gr.Slider(0, 12, step=1, label="Sleep Hours per Night"), | |
| gr.Dropdown(["Average", "Good", "Poor", "Very Poor", "Excellent"], label="Diet Quality"), | |
| gr.Dropdown(["Yes", "No", "Former"], label="Smoking"), | |
| gr.Dropdown(["Rarely", "Never", "Weekly", "Several times a week", "Daily"], label="Alcohol Frequency"), | |
| gr.Slider(0, 40, step=1, label="Perceived Stress Score"), | |
| gr.Slider(10, 40, step=1, label="Body Mass Index"), | |
| gr.Slider(90, 180, step=1, label="Blood Pressure Systolic"), | |
| gr.Slider(60, 120, step=1, label="Blood Pressure Diastolic"), | |
| gr.Slider(0, 30000, step=100, label="Daily Steps Count"), | |
| gr.Slider(0, 100, step=1, label="Weekly Work Hours"), | |
| gr.Slider(0, 20, step=1, label="Hobbies Count"), | |
| gr.Slider(0, 30, step=1, label="Social Events per Month"), | |
| gr.Slider(0, 50, step=1, label="Books Read per Year"), | |
| gr.Slider(0, 100, step=1, label="Volunteer Hours per Month"), | |
| gr.Slider(0, 20, step=1, label="Travel Frequency per Year"), | |
| gr.Slider(0, 300, step=10, label="Daily Active Minutes on Instagram"), | |
| gr.Slider(0, 50, step=1, label="Sessions per Day"), | |
| gr.Slider(0, 50, step=1, label="Posts Created per Week"), | |
| gr.Slider(0, 300, step=10, label="Reels Watched per Day"), | |
| gr.Slider(0, 500, step=10, label="Stories Viewed per Day"), | |
| gr.Slider(0, 1000, step=10, label="Likes Given per Day"), | |
| gr.Slider(0, 100, step=1, label="Comments Written per Day"), | |
| gr.Slider(0, 200, step=1, label="DMs Sent per Week"), | |
| gr.Slider(0, 200, step=1, label="DMs Received per Week"), | |
| gr.Slider(0, 500, step=10, label="Ads Viewed per Day"), | |
| gr.Slider(0, 100, step=1, label="Ads Clicked per Day"), | |
| gr.Slider(0, 180, step=5, label="Time on Feed per Day (minutes)"), | |
| gr.Slider(0, 120, step=5, label="Time on Explore per Day (minutes)"), | |
| gr.Slider(0, 60, step=5, label="Time on Messages per Day (minutes)"), | |
| gr.Slider(0, 180, step=5, label="Time on Reels per Day (minutes)"), | |
| gr.Slider(0, 100000, step=1000, label="Followers Count"), | |
| gr.Slider(0, 5000, step=100, label="Following Count"), | |
| gr.Dropdown(["False", "True"], label="Uses Premium Features"), | |
| gr.Slider(0, 100, step=1, label="Notification Response Rate (%)"), | |
| gr.Slider(2005, 2024, step=1, label="Account Creation Year"), | |
| gr.Slider(1, 180, step=1, label="Average Session Length (minutes)"), | |
| gr.Dropdown(["Reels", "Stories", "Live", "Mixed", "Photos"], label="Content Type Preference"), | |
| gr.Dropdown(["Fashion", "Travel", "Food", "Fitness", "Art", "Music", "Tech", "Other"], label="Preferred Content Theme"), | |
| gr.Dropdown(["Public", "Private", "Friends only"], label="Privacy Setting Level"), | |
| gr.Dropdown(["False", "True"], label="Two-Factor Authentication Enabled"), | |
| gr.Dropdown(["False", "True"], label="Biometric Login Used"), | |
| gr.Slider(0, 10, step=1, label="Linked Accounts Count"), | |
| gr.Dropdown(["Free", "Premium", "Business"], label="Subscription Status"), | |
| gr.Slider(0, 100, step=1, label="User Engagement Score") | |
| ] | |
| output_component = gr.Label(label="Crimson Nebula Prediction") | |
| # Interface | |
| app = gr.Interface( | |
| fn=predict_crimson_nebula, | |
| inputs=input_components, | |
| outputs=output_component, | |
| title="Crimson Nebula", | |
| description="Happiness Prediction Model" | |
| ) | |
| # Launch the app | |
| if __name__ == "__main__": | |
| app.launch() |