Spaces:
Build error
Build error
Commit
·
500ef96
0
Parent(s):
Duplicate from aiEDUcurriculum/introtoAI-mental-health-project
Browse filesCo-authored-by: Curriculum Team @ aiEDU <[email protected]>
- .gitattributes +31 -0
- README.md +14 -0
- app.py +172 -0
- data.csv +95 -0
- info.md +16 -0
- requirements.txt +3 -0
.gitattributes
ADDED
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
*.7z filter=lfs diff=lfs merge=lfs -text
|
2 |
+
*.arrow filter=lfs diff=lfs merge=lfs -text
|
3 |
+
*.bin filter=lfs diff=lfs merge=lfs -text
|
4 |
+
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
5 |
+
*.ftz filter=lfs diff=lfs merge=lfs -text
|
6 |
+
*.gz filter=lfs diff=lfs merge=lfs -text
|
7 |
+
*.h5 filter=lfs diff=lfs merge=lfs -text
|
8 |
+
*.joblib filter=lfs diff=lfs merge=lfs -text
|
9 |
+
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
10 |
+
*.model filter=lfs diff=lfs merge=lfs -text
|
11 |
+
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
12 |
+
*.npy filter=lfs diff=lfs merge=lfs -text
|
13 |
+
*.npz filter=lfs diff=lfs merge=lfs -text
|
14 |
+
*.onnx filter=lfs diff=lfs merge=lfs -text
|
15 |
+
*.ot filter=lfs diff=lfs merge=lfs -text
|
16 |
+
*.parquet filter=lfs diff=lfs merge=lfs -text
|
17 |
+
*.pickle filter=lfs diff=lfs merge=lfs -text
|
18 |
+
*.pkl filter=lfs diff=lfs merge=lfs -text
|
19 |
+
*.pb filter=lfs diff=lfs merge=lfs -text
|
20 |
+
*.pt filter=lfs diff=lfs merge=lfs -text
|
21 |
+
*.pth filter=lfs diff=lfs merge=lfs -text
|
22 |
+
*.rar filter=lfs diff=lfs merge=lfs -text
|
23 |
+
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
24 |
+
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
25 |
+
*.tflite filter=lfs diff=lfs merge=lfs -text
|
26 |
+
*.tgz filter=lfs diff=lfs merge=lfs -text
|
27 |
+
*.wasm filter=lfs diff=lfs merge=lfs -text
|
28 |
+
*.xz filter=lfs diff=lfs merge=lfs -text
|
29 |
+
*.zip filter=lfs diff=lfs merge=lfs -text
|
30 |
+
*.zstandard filter=lfs diff=lfs merge=lfs -text
|
31 |
+
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
README.md
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
---
|
2 |
+
title: IntrotoAI Mental Health Project
|
3 |
+
emoji: 😌
|
4 |
+
colorFrom: purple
|
5 |
+
colorTo: blue
|
6 |
+
sdk: gradio
|
7 |
+
sdk_version: 3.1.1
|
8 |
+
app_file: app.py
|
9 |
+
pinned: false
|
10 |
+
license: afl-3.0
|
11 |
+
duplicated_from: aiEDUcurriculum/introtoAI-mental-health-project
|
12 |
+
---
|
13 |
+
|
14 |
+
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
app.py
ADDED
@@ -0,0 +1,172 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
### ----------------------------- ###
|
2 |
+
### libraries ###
|
3 |
+
### ----------------------------- ###
|
4 |
+
|
5 |
+
import gradio as gr
|
6 |
+
import pandas as pd
|
7 |
+
import numpy as np
|
8 |
+
from sklearn.model_selection import train_test_split
|
9 |
+
from sklearn.linear_model import LogisticRegression
|
10 |
+
from sklearn import metrics
|
11 |
+
|
12 |
+
|
13 |
+
### ------------------------------ ###
|
14 |
+
### data transformation ###
|
15 |
+
### ------------------------------ ###
|
16 |
+
|
17 |
+
# load dataset
|
18 |
+
uncleaned_data = pd.read_csv('data.csv')
|
19 |
+
|
20 |
+
# remove timestamp from dataset (always first column)
|
21 |
+
uncleaned_data = uncleaned_data.iloc[: , 1:]
|
22 |
+
data = pd.DataFrame()
|
23 |
+
|
24 |
+
# keep track of which columns are categorical and what
|
25 |
+
# those columns' value mappings are
|
26 |
+
# structure: {colname1: {...}, colname2: {...} }
|
27 |
+
cat_value_dicts = {}
|
28 |
+
final_colname = uncleaned_data.columns[len(uncleaned_data.columns) - 1]
|
29 |
+
|
30 |
+
# for each column...
|
31 |
+
for (colname, colval) in uncleaned_data.iteritems():
|
32 |
+
|
33 |
+
# check if col is already a number; if so, add col directly
|
34 |
+
# to new dataframe and skip to next column
|
35 |
+
if isinstance(colval.values[0], (np.integer, float)):
|
36 |
+
data[colname] = uncleaned_data[colname].copy()
|
37 |
+
continue
|
38 |
+
|
39 |
+
# structure: {0: "lilac", 1: "blue", ...}
|
40 |
+
new_dict = {}
|
41 |
+
val = 0 # first index per column
|
42 |
+
transformed_col_vals = [] # new numeric datapoints
|
43 |
+
|
44 |
+
# if not, for each item in that column...
|
45 |
+
for (row, item) in enumerate(colval.values):
|
46 |
+
|
47 |
+
# if item is not in this col's dict...
|
48 |
+
if item not in new_dict:
|
49 |
+
new_dict[item] = val
|
50 |
+
val += 1
|
51 |
+
|
52 |
+
# then add numerical value to transformed dataframe
|
53 |
+
transformed_col_vals.append(new_dict[item])
|
54 |
+
|
55 |
+
# reverse dictionary only for final col (0, 1) => (vals)
|
56 |
+
if colname == final_colname:
|
57 |
+
new_dict = {value : key for (key, value) in new_dict.items()}
|
58 |
+
|
59 |
+
cat_value_dicts[colname] = new_dict
|
60 |
+
data[colname] = transformed_col_vals
|
61 |
+
|
62 |
+
|
63 |
+
### -------------------------------- ###
|
64 |
+
### model training ###
|
65 |
+
### -------------------------------- ###
|
66 |
+
|
67 |
+
# select features and predicton; automatically selects last column as prediction
|
68 |
+
cols = len(data.columns)
|
69 |
+
num_features = cols - 1
|
70 |
+
x = data.iloc[: , :num_features]
|
71 |
+
y = data.iloc[: , num_features:]
|
72 |
+
|
73 |
+
# split data into training and testing sets
|
74 |
+
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.25)
|
75 |
+
|
76 |
+
# instantiate the model (using default parameters)
|
77 |
+
model = LogisticRegression()
|
78 |
+
model.fit(x_train, y_train.values.ravel())
|
79 |
+
y_pred = model.predict(x_test)
|
80 |
+
|
81 |
+
|
82 |
+
### -------------------------------- ###
|
83 |
+
### article generation ###
|
84 |
+
### -------------------------------- ###
|
85 |
+
# borrow file reading function from reader.py
|
86 |
+
|
87 |
+
def get_feat():
|
88 |
+
feats = [abs(x) for x in model.coef_[0]]
|
89 |
+
max_val = max(feats)
|
90 |
+
idx = feats.index(max_val)
|
91 |
+
return data.columns[idx]
|
92 |
+
|
93 |
+
acc = str(round(metrics.accuracy_score(y_test, y_pred) * 100, 1)) + "%"
|
94 |
+
most_imp_feat = get_feat()
|
95 |
+
# info = get_article(acc, most_imp_feat)
|
96 |
+
|
97 |
+
|
98 |
+
|
99 |
+
### ------------------------------- ###
|
100 |
+
### interface creation ###
|
101 |
+
### ------------------------------- ###
|
102 |
+
|
103 |
+
|
104 |
+
# predictor for generic number of features
|
105 |
+
def general_predictor(*args):
|
106 |
+
features = []
|
107 |
+
|
108 |
+
# transform categorical input
|
109 |
+
for colname, arg in zip(data.columns, args):
|
110 |
+
if (colname in cat_value_dicts):
|
111 |
+
features.append(cat_value_dicts[colname][arg])
|
112 |
+
else:
|
113 |
+
features.append(arg)
|
114 |
+
|
115 |
+
# predict single datapoint
|
116 |
+
new_input = [features]
|
117 |
+
result = model.predict(new_input)
|
118 |
+
return cat_value_dicts[final_colname][result[0]]
|
119 |
+
|
120 |
+
# add data labels to replace those lost via star-args
|
121 |
+
|
122 |
+
|
123 |
+
block = gr.Blocks()
|
124 |
+
|
125 |
+
with open('info.md') as f:
|
126 |
+
with block:
|
127 |
+
gr.Markdown(f.readline())
|
128 |
+
gr.Markdown('Take the quiz to get a personalized recommendation using AI.')
|
129 |
+
|
130 |
+
with gr.Row():
|
131 |
+
with gr.Box():
|
132 |
+
inputls = []
|
133 |
+
for colname in data.columns:
|
134 |
+
# skip last column
|
135 |
+
if colname == final_colname:
|
136 |
+
continue
|
137 |
+
|
138 |
+
# access categories dict if data is categorical
|
139 |
+
# otherwise, just use a number input
|
140 |
+
if colname in cat_value_dicts:
|
141 |
+
radio_options = list(cat_value_dicts[colname].keys())
|
142 |
+
inputls.append(gr.inputs.Dropdown(choices=radio_options, type="value", label=colname))
|
143 |
+
else:
|
144 |
+
# add numerical input
|
145 |
+
inputls.append(gr.inputs.Number(label=colname))
|
146 |
+
gr.Markdown("<br />")
|
147 |
+
|
148 |
+
submit = gr.Button("Click to see your personalized result!", variant="primary")
|
149 |
+
gr.Markdown("<br />")
|
150 |
+
output = gr.Textbox(label="Your recommendation:", placeholder="your recommendation will appear here")
|
151 |
+
|
152 |
+
submit.click(fn=general_predictor, inputs=inputls, outputs=output)
|
153 |
+
gr.Markdown("<br />")
|
154 |
+
|
155 |
+
with gr.Row():
|
156 |
+
with gr.Box():
|
157 |
+
gr.Markdown(f"<h3>Accuracy: </h3>{acc}")
|
158 |
+
with gr.Box():
|
159 |
+
gr.Markdown(f"<h3>Most important feature: </h3>{most_imp_feat}")
|
160 |
+
|
161 |
+
gr.Markdown("<br />")
|
162 |
+
|
163 |
+
with gr.Box():
|
164 |
+
gr.Markdown('''⭐ Note that model accuracy is based on the uploaded data.csv and reflects how well the AI model can give correct recommendations for <em>that dataset</em>. Model accuracy and most important feature can be helpful for understanding how the model works, but <em>should not be considered absolute facts about the real world</em>.''')
|
165 |
+
|
166 |
+
with gr.Box():
|
167 |
+
with open('info.md') as f:
|
168 |
+
f.readline()
|
169 |
+
gr.Markdown(f.read())
|
170 |
+
|
171 |
+
# show the interface
|
172 |
+
block.launch()
|
data.csv
ADDED
@@ -0,0 +1,95 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Timestamp,Which difficult emotion do you struggle with the most?,"On an average weekday, how many hours do you spend alone?",How well do you feel you manage your stress?,Would you consider yourself an introvert or an extrovert?,"When you think of a good idea, what is the first thing you usually do?","After a hard day at work/school, what do you usually do?","When you're feeling stressed or sad, which self care practice do you think is most helpful for you? (If you do not currently do any of these, please answer which you think would be best.)"
|
2 |
+
1/10/2022 8:48:35,worry,More than 4,Not very well at all,Introvert,Probably forget it lol,Sleep,getting stuff done
|
3 |
+
1/10/2022 8:48:36,sadness,More than 4,I'm okay at it,Introvert,Something else,Something else,getting stuff done
|
4 |
+
1/10/2022 8:48:37,loneliness,3 - 4,I'm okay at it,Extrovert,Google it to see if someone else had the same idea,Get creative (sing/draw/dance),getting stuff done
|
5 |
+
1/10/2022 8:48:40,none of these,More than 4,I'm okay at it,Extrovert,Share it with a friend,Work out,getting stuff done
|
6 |
+
1/10/2022 8:48:45,sadness,Less than 1,I'm okay at it,Introvert,Draw it out,Relax,journaling
|
7 |
+
1/10/2022 8:48:47,nervousness,1 - 2,I'm okay at it,Introvert,Write it down,Relax,getting stuff done
|
8 |
+
1/10/2022 8:48:53,anger,1 - 2,Not very well at all,Introvert,Write it down,Get creative (sing/draw/dance),meditation/mindfulness
|
9 |
+
1/10/2022 8:48:56,loneliness,2 - 3,I'm okay at it,Introvert,Write it down,Work out,volunteering/helping others
|
10 |
+
1/10/2022 8:49:03,loneliness,More than 4,I'm okay at it,Introvert,Probably forget it lol,Work out,getting stuff done
|
11 |
+
1/10/2022 8:49:05,loneliness,1 - 2,I'm okay at it,Introvert,Draw it out,Work out,journaling
|
12 |
+
1/10/2022 8:49:08,nervousness,3 - 4,Not very well at all,Introvert,Share it with a friend,Check out social media,getting stuff done
|
13 |
+
1/10/2022 8:49:13,nervousness,3 - 4,I'm okay at it,Introvert,Probably forget it lol,Check out social media,getting stuff done
|
14 |
+
1/10/2022 8:49:17,loneliness,1 - 2,Not very well at all,Introvert,Google it to see if someone else had the same idea,Check out social media,taking a social media break
|
15 |
+
1/10/2022 8:49:18,worry,1 - 2,Not very well at all,Introvert,Write it down,Work on my side hussle,getting stuff done
|
16 |
+
1/10/2022 8:49:19,loneliness,1 - 2,I'm okay at it,Introvert,Write it down,Work out,meditation/mindfulness
|
17 |
+
1/10/2022 8:49:20,sadness,3 - 4,I'm great at it,Extrovert,Draw it out,Work on my side hussle,journaling
|
18 |
+
1/10/2022 8:49:21,nervousness,1 - 2,Not very well at all,Introvert,Google it to see if someone else had the same idea,Get creative (sing/draw/dance),hanging out with friends
|
19 |
+
1/10/2022 8:49:22,loneliness,2 - 3,I'm okay at it,Introvert,Probably forget it lol,Sleep,meditation/mindfulness
|
20 |
+
1/10/2022 8:49:23,sadness,More than 4,I'm okay at it,Introvert,Google it to see if someone else had the same idea,Sleep,volunteering/helping others
|
21 |
+
1/10/2022 8:49:24,none of these,1 - 2,I'm okay at it,Introvert,Write it down,Work out,meditation/mindfulness
|
22 |
+
1/10/2022 8:49:24,nervousness,Less than 1,I'm great at it,Extrovert,Share it with a friend,Relax,hanging out with friends
|
23 |
+
1/10/2022 8:49:27,sadness,3 - 4,Not very well at all,Introvert,Share it with a friend,Relax,meditation/mindfulness
|
24 |
+
1/10/2022 8:49:27,nervousness,1 - 2,I'm okay at it,Extrovert,Google it to see if someone else had the same idea,Relax,hanging out with friends
|
25 |
+
1/10/2022 8:49:32,worry,More than 4,I'm okay at it,Introvert,Write it down,Check out social media,hanging out with friends
|
26 |
+
1/10/2022 8:49:35,loneliness,2 - 3,I'm okay at it,Introvert,Probably forget it lol,Relax,meditation/mindfulness
|
27 |
+
1/10/2022 8:49:36,worry,More than 4,I'm great at it,Introvert,Something else,Relax,hanging out with friends
|
28 |
+
1/10/2022 8:49:41,worry,1 - 2,I'm okay at it,Introvert,Something else,Work on my side hussle,getting stuff done
|
29 |
+
1/10/2022 8:49:43,anger,2 - 3,I'm okay at it,Introvert,Google it to see if someone else had the same idea,Work on my side hussle,volunteering/helping others
|
30 |
+
1/10/2022 8:49:44,loneliness,1 - 2,I'm okay at it,Extrovert,Share it with a friend,Work out,hanging out with friends
|
31 |
+
1/10/2022 8:49:45,loneliness,More than 4,I'm okay at it,Extrovert,Probably forget it lol,Check out social media,getting stuff done
|
32 |
+
1/10/2022 8:49:45,worry,More than 4,I'm okay at it,Introvert,Something else,Relax,getting stuff done
|
33 |
+
1/10/2022 8:49:48,worry,More than 4,Not very well at all,Introvert,Share it with a friend,Something else,hanging out with friends
|
34 |
+
1/10/2022 8:49:50,sadness,2 - 3,I'm okay at it,Introvert,Write it down,Work out,meditation/mindfulness
|
35 |
+
1/10/2022 8:49:51,loneliness,More than 4,I'm okay at it,Introvert,Probably forget it lol,Something else,getting stuff done
|
36 |
+
1/10/2022 8:49:51,loneliness,1 - 2,I'm okay at it,Extrovert,Google it to see if someone else had the same idea,Work out,journaling
|
37 |
+
1/10/2022 8:49:51,loneliness,2 - 3,I'm okay at it,Introvert,Draw it out,Get creative (sing/draw/dance),journaling
|
38 |
+
1/10/2022 8:49:53,sadness,More than 4,Not very well at all,Introvert,Share it with a friend,Check out social media,hanging out with friends
|
39 |
+
1/10/2022 8:49:53,worry,More than 4,I'm okay at it,Extrovert,Write it down,Get creative (sing/draw/dance),meditation/mindfulness
|
40 |
+
1/10/2022 8:49:54,anger,1 - 2,I'm okay at it,Introvert,Write it down,Relax,hanging out with friends
|
41 |
+
1/10/2022 8:49:55,anger,More than 4,I'm okay at it,Introvert,Google it to see if someone else had the same idea,Relax,meditation/mindfulness
|
42 |
+
1/10/2022 8:50:03,nervousness,More than 4,I'm great at it,Introvert,Probably forget it lol,Relax,getting stuff done
|
43 |
+
1/10/2022 8:50:04,worry,More than 4,I'm okay at it,Introvert,Share it with a friend,Relax,hanging out with friends
|
44 |
+
1/10/2022 8:50:07,nervousness,2 - 3,Not very well at all,Introvert,Share it with a friend,Work out,journaling
|
45 |
+
1/10/2022 8:50:11,loneliness,1 - 2,I'm okay at it,Introvert,Share it with a friend,Work out,meditation/mindfulness
|
46 |
+
1/10/2022 8:50:12,anger,Less than 1,I'm okay at it,Introvert,Google it to see if someone else had the same idea,Relax,getting stuff done
|
47 |
+
1/10/2022 8:50:13,none of these,Less than 1,I'm okay at it,Extrovert,Share it with a friend,Relax,journaling
|
48 |
+
1/10/2022 8:50:13,sadness,2 - 3,I'm okay at it,Introvert,Write it down,Work out,meditation/mindfulness
|
49 |
+
1/10/2022 8:50:19,loneliness,1 - 2,I'm great at it,Extrovert,Probably forget it lol,Check out social media,taking a social media break
|
50 |
+
1/10/2022 8:50:19,worry,More than 4,I'm okay at it,Introvert,Write it down,Relax,meditation/mindfulness
|
51 |
+
1/10/2022 8:50:21,anger,1 - 2,I'm okay at it,Introvert,Write it down,Relax,taking a social media break
|
52 |
+
1/10/2022 8:50:26,nervousness,3 - 4,I'm great at it,Extrovert,Write it down,Get creative (sing/draw/dance),volunteering/helping others
|
53 |
+
1/10/2022 8:50:26,nervousness,1 - 2,I'm okay at it,Introvert,Google it to see if someone else had the same idea,Work on my side hussle,taking a social media break
|
54 |
+
1/10/2022 8:50:28,loneliness,More than 4,I'm okay at it,Extrovert,Google it to see if someone else had the same idea,Relax,hanging out with friends
|
55 |
+
1/10/2022 8:50:42,loneliness,1 - 2,I'm great at it,Extrovert,Share it with a friend,Work out,volunteering/helping others
|
56 |
+
1/10/2022 8:50:46,none of these,1 - 2,I'm okay at it,Introvert,Write it down,Relax,hanging out with friends
|
57 |
+
1/10/2022 8:50:49,worry,3 - 4,I'm okay at it,Introvert,Write it down,Sleep,meditation/mindfulness
|
58 |
+
1/10/2022 8:50:51,worry,More than 4,I'm okay at it,Introvert,Write it down,Get creative (sing/draw/dance),journaling
|
59 |
+
1/10/2022 8:50:56,loneliness,More than 4,I'm okay at it,Introvert,Share it with a friend,Relax,hanging out with friends
|
60 |
+
1/10/2022 8:50:56,loneliness,1 - 2,I'm okay at it,Introvert,Probably forget it lol,Work out,meditation/mindfulness
|
61 |
+
1/10/2022 8:51:15,none of these,More than 4,I'm okay at it,Introvert,Google it to see if someone else had the same idea,Relax,hanging out with friends
|
62 |
+
1/10/2022 8:51:16,worry,More than 4,I'm okay at it,Introvert,Write it down,Relax,meditation/mindfulness
|
63 |
+
1/10/2022 8:51:24,worry,2 - 3,I'm okay at it,Introvert,Share it with a friend,Relax,hanging out with friends
|
64 |
+
1/10/2022 8:51:26,anger,1 - 2,I'm okay at it,Extrovert,Draw it out,Relax,journaling
|
65 |
+
1/10/2022 8:51:33,loneliness,1 - 2,Not very well at all,Introvert,Write it down,Sleep,meditation/mindfulness
|
66 |
+
1/10/2022 8:51:37,sadness,2 - 3,Not very well at all,Introvert,Share it with a friend,Work on my side hussle,journaling
|
67 |
+
1/10/2022 8:51:43,loneliness,2 - 3,I'm okay at it,Introvert,Probably forget it lol,Work on my side hussle,journaling
|
68 |
+
1/10/2022 8:51:44,worry,1 - 2,I'm okay at it,Introvert,Write it down,Relax,getting stuff done
|
69 |
+
1/10/2022 8:51:53,anger,More than 4,I'm okay at it,Introvert,Write it down,Sleep,meditation/mindfulness
|
70 |
+
1/10/2022 8:51:59,anger,2 - 3,I'm okay at it,Introvert,Share it with a friend,Something else,hanging out with friends
|
71 |
+
1/10/2022 8:52:11,worry,More than 4,Not very well at all,Introvert,Share it with a friend,Relax,taking a social media break
|
72 |
+
1/10/2022 8:52:14,worry,More than 4,I'm okay at it,Introvert,Share it with a friend,Something else,getting stuff done
|
73 |
+
1/10/2022 8:52:14,loneliness,3 - 4,I'm okay at it,Extrovert,Share it with a friend,Sleep,meditation/mindfulness
|
74 |
+
1/10/2022 8:52:27,loneliness,1 - 2,I'm okay at it,Introvert,Probably forget it lol,Work out,meditation/mindfulness
|
75 |
+
1/10/2022 8:52:37,nervousness,3 - 4,I'm okay at it,Introvert,Google it to see if someone else had the same idea,Work out,journaling
|
76 |
+
1/10/2022 8:52:49,worry,2 - 3,I'm okay at it,Introvert,Share it with a friend,Work on my side hussle,meditation/mindfulness
|
77 |
+
1/10/2022 8:53:04,anger,2 - 3,I'm okay at it,Introvert,Write it down,Work out,meditation/mindfulness
|
78 |
+
1/10/2022 8:53:36,sadness,1 - 2,I'm great at it,Introvert,Write it down,Get creative (sing/draw/dance),journaling
|
79 |
+
1/10/2022 8:53:57,loneliness,1 - 2,I'm okay at it,Introvert,Share it with a friend,Work on my side hussle,hanging out with friends
|
80 |
+
1/10/2022 8:54:25,worry,Less than 1,I'm okay at it,Introvert,Share it with a friend,Relax,hanging out with friends
|
81 |
+
1/10/2022 8:55:25,sadness,2 - 3,I'm great at it,Introvert,Share it with a friend,Relax,hanging out with friends
|
82 |
+
1/10/2022 8:56:32,sadness,Less than 1,I'm okay at it,Extrovert,Share it with a friend,Work out,getting stuff done
|
83 |
+
1/10/2022 8:58:16,sadness,More than 4,Not very well at all,Introvert,Probably forget it lol,Check out social media,taking a social media break
|
84 |
+
1/10/2022 8:59:48,sadness,1 - 2,I'm okay at it,Introvert,Draw it out,Work on my side hussle,meditation/mindfulness
|
85 |
+
1/10/2022 9:01:03,worry,More than 4,I'm okay at it,Extrovert,Share it with a friend,Relax,taking a social media break
|
86 |
+
1/10/2022 9:03:33,loneliness,1 - 2,I'm okay at it,Introvert,Draw it out,Relax,volunteering/helping others
|
87 |
+
1/10/2022 9:03:51,loneliness,2 - 3,I'm okay at it,Introvert,Share it with a friend,Work out,taking a social media break
|
88 |
+
1/10/2022 9:06:07,worry,1 - 2,Not very well at all,Introvert,Draw it out,Work out,journaling
|
89 |
+
1/10/2022 9:06:33,loneliness,Less than 1,I'm okay at it,Introvert,Write it down,Check out social media,meditation/mindfulness
|
90 |
+
1/10/2022 9:07:48,worry,1 - 2,I'm okay at it,Introvert,Probably forget it lol,Work on my side hussle,meditation/mindfulness
|
91 |
+
1/10/2022 9:08:18,worry,More than 4,I'm okay at it,Extrovert,Share it with a friend,Relax,meditation/mindfulness
|
92 |
+
1/10/2022 9:09:24,worry,More than 4,I'm okay at it,Introvert,Google it to see if someone else had the same idea,Relax,meditation/mindfulness
|
93 |
+
1/10/2022 9:23:09,nervousness,3 - 4,Not very well at all,Introvert,Google it to see if someone else had the same idea,Check out social media,getting stuff done
|
94 |
+
1/10/2022 9:24:04,loneliness,More than 4,I'm okay at it,Introvert,Share it with a friend,Work on my side hussle,meditation/mindfulness
|
95 |
+
1/10/2022 9:48:23,none of these,1 - 2,I'm okay at it,Extrovert,Share it with a friend,Work on my side hussle,getting stuff done
|
info.md
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# 😌 Mental Health App
|
2 |
+
|
3 |
+
### 🧐 Problem Statement and Research Summary
|
4 |
+
Mental health is a pretty big issue for people in high school right now. There's been a lot of talk about how Instagram and social media in general are affecting mental health. We thought something that would be important is to figure out what kind of self-care might be helpful for you. We are definitely not doctors and this is just a recommendation. This site is not a substitute for good mental health care. We asked people some questions about themselves like what kinds of emotions they struggled with the most and what kinds of self care practices helped them the most, like journaling or getting things done. Our view of self care is that sometimes it means being kind to yourself and taking a break and sometimes it means you should just do what needs to be done and get it over with. It depends on your circumstances. Our model isn't super accurate, so it's important to know that this is just a suggestion and you don't have to take our advice. We thought it would be important for people in high school to have some ideas of what might be a good strategy for them. If you try out a suggestion and it works for you, that would be super awesome. We hope you have a super great day and stay safe and healthy.
|
5 |
+
|
6 |
+
### 🎣 Data Collection Plan
|
7 |
+
The data for this model was collected on Amazon's Mechanical Turk! Mechanical Turk allows you to get a lot of survey responses quickly by paying people for their time. People can make a bit of extra money by completing short tasks while they ride the bus to work or wait for a friend, or even just to avoid boredom. You must be 18 years or older to be a worker.
|
8 |
+
|
9 |
+
### 💥 Ethical Considerations (Data Privacy and Bias)
|
10 |
+
* Data privacy: mental health is a super sensitive topic. For example, if your parents don't know that you're feeling really bad, they might be upset to learn about it. Because of this reason, we knew that people might not want to answer our questions. We kept the survey anonymous so you didn't have to log in in order to respond to us. We also let people know how their data was going to be used, in this case to recommend self care for other people, which is a good cause. At the end of the day, you never know who will see your data and people had to take that risk.
|
11 |
+
* Bias: we do kind of think that any of these strategies would be helpful for people. But, they won't all work the same for different kinds of people. So there may be some bias in our project, like you might not know if different kinds of people are recommended what's right for them. We also didn't have that much data because we only surveyed about 100 people. We aren't happy with the accuracy, like we said before, which just means that this is a really hard question and we probably need more data to really understand it.
|
12 |
+
|
13 |
+
### 👻 Our Team
|
14 |
+
This app was designed and built by The Curriculum Team at [The AI Education Project](https://aiedu.org).
|
15 |
+
|
16 |
+

|
requirements.txt
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
pandas==1.3.4
|
2 |
+
scikit-learn==1.0.1
|
3 |
+
numpy==1.21.4
|