質問編集履歴
3
質問を編集しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -8,144 +8,6 @@
|
|
8
8
|
|
9
9
|

|
10
10
|
|
11
|
-
### 該当のソースコード
|
12
|
-
|
13
|
-
```python
|
14
|
-
import streamlit as st
|
15
|
-
import numpy as np
|
16
|
-
import pandas as pd
|
17
|
-
import sklearn
|
18
|
-
from sklearn.ensemble import RandomForestRegressor
|
19
|
-
from sklearn.metrics import mean_squared_error
|
20
|
-
|
21
|
-
|
22
|
-
st.title("応募用紙に対する応募数を予測する")
|
23
|
-
|
24
|
-
#回帰モデルの作成
|
25
|
-
|
26
|
-
#データの読み込み
|
27
|
-
train_y = pd.read_csv("train_y.csv", encoding="utf-8")
|
28
|
-
train_X = pd.read_csv("train_x.csv", encoding="utf-8")
|
29
|
-
|
30
|
-
#train_y["No."]をdropする
|
31
|
-
train_y = train_y.drop(["No."], axis=1)
|
32
|
-
|
33
|
-
#train_xのデータ整形(空白だけ・不要?なカラムの削除)
|
34
|
-
train_X = train_X.dropna(axis=1, how='all')
|
35
|
-
train_X = train_X.fillna(0)
|
36
|
-
train_X = train_X.drop(["掲載期間 開始日", "掲載期間 終了日"], axis=1)
|
37
|
-
|
38
|
-
#train_yとtrain_Xを連結して学習データとして利用する
|
39
|
-
train = pd.concat([train_y.reset_index(drop=True), train_X.reset_index(drop=True)], axis=1)
|
40
|
-
|
41
|
-
#データ変換と分割
|
42
|
-
y = train["応募数 合計"]
|
43
|
-
X = train.drop(["No.", "応募数 合計"], axis=1)
|
44
|
-
|
45
|
-
y_array = np.array(y)
|
46
|
-
X_array = np.array(X)
|
47
|
-
|
48
|
-
#文章のデータ整形が難しかったので、文章のカラムを一括に学習データから外します。
|
49
|
-
X_array = X.select_dtypes(exclude="object")
|
50
|
-
|
51
|
-
from sklearn.model_selection import train_test_split
|
52
|
-
X_train, X_test, y_train, y_test = train_test_split(X_array, y_array, test_size=0.4, random_state=0)
|
53
|
-
|
54
|
-
#回帰モデル作成
|
55
|
-
rfr = RandomForestRegressor(random_state=0)
|
56
|
-
rfr.fit(X_train, y_train)
|
57
|
-
|
58
|
-
y_pred = rfr.predict(X_test)
|
59
|
-
# print(y_pred.shape)
|
60
|
-
|
61
|
-
mse = np.sqrt(mean_squared_error(y_pred, y_test))
|
62
|
-
st.write(f"Mean Squared Error:{mse:.3}")
|
63
|
-
|
64
|
-
#ファイルがアップロードされるまでの処理を書く
|
65
|
-
uploaded_file = st.file_uploader("Choose a file", type=["csv"])
|
66
|
-
|
67
|
-
if uploaded_file is not None:
|
68
|
-
test_X = pd.read_csv(uploaded_file).dropna(axis=1, how="all").fillna(0)
|
69
|
-
|
70
|
-
#応募数合計の予測をするためのデータ成形
|
71
|
-
test_X = test_X.drop(["掲載期間 開始日", "掲載期間 終了日"], axis=1)
|
72
|
-
|
73
|
-
#文章のデータ整形が難しかったので、文章のカラムを一括に学習データから外します。
|
74
|
-
test_X2 = test_X.drop(["No."], axis=1)
|
75
|
-
test_X2 = test_X2.select_dtypes(exclude="object")
|
76
|
-
|
77
|
-
#応募数合計の予測・データの予測
|
78
|
-
test_pred = rfr.predict(test_X2)
|
79
|
-
print(test_pred.shape)
|
80
|
-
|
81
|
-
test_pred = pd.DataFrame(test_pred, columns=["応募数 合計"])
|
82
|
-
result = pd.concat([test_X["No."], test_pred], axis=1)
|
83
|
-
result = result.reset_index(drop=True)
|
84
|
-
|
85
|
-
st.dataframe(result)
|
86
|
-
st.download_button(label = '予測結果をダウンロード', data=result.to_csv(index=False).encode('utf-8'), file_name="result.csv")
|
87
|
-
```
|
88
|
-
|
89
|
-
```.gitignore
|
90
|
-
*.csv
|
91
|
-
```
|
92
|
-
|
93
|
-
```Herokuのログ
|
94
|
-
2021-12-29T08:58:33.633044+00:00 app[worker.1]: streamlit run main.py [ARGUMENTS]
|
95
|
-
2021-12-29T08:58:33.633698+00:00 app[worker.1]: Traceback (most recent call last):
|
96
|
-
2021-12-29T08:58:33.633702+00:00 app[worker.1]: File "/app/main.py", line 19, in <module>
|
97
|
-
2021-12-29T08:58:33.633849+00:00 app[worker.1]: train_y = pd.read_csv("train_y.csv", encoding="utf-8")
|
98
|
-
2021-12-29T08:58:33.633854+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.9/site-packages/pandas/util/_decorators.py", line 311, in wrapper
|
99
|
-
2021-12-29T08:58:33.633979+00:00 app[worker.1]: return func(*args, **kwargs)
|
100
|
-
2021-12-29T08:58:33.633989+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.9/site-packages/pandas/io/parsers/readers.py", line 586, in read_csv
|
101
|
-
2021-12-29T08:58:33.634151+00:00 app[worker.1]: return _read(filepath_or_buffer, kwds)
|
102
|
-
2021-12-29T08:58:33.634161+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.9/site-packages/pandas/io/parsers/readers.py", line 482, in _read
|
103
|
-
2021-12-29T08:58:33.634299+00:00 app[worker.1]: parser = TextFileReader(filepath_or_buffer, **kwds)
|
104
|
-
2021-12-29T08:58:33.634309+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.9/site-packages/pandas/io/parsers/readers.py", line 811, in __init__
|
105
|
-
2021-12-29T08:58:33.634517+00:00 app[worker.1]: self._engine = self._make_engine(self.engine)
|
106
|
-
2021-12-29T08:58:33.634533+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.9/site-packages/pandas/io/parsers/readers.py", line 1040, in _make_engine
|
107
|
-
2021-12-29T08:58:33.634756+00:00 app[worker.1]: return mapping[engine](self.f, **self.options) # type: ignore[call-arg]
|
108
|
-
2021-12-29T08:58:33.634758+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.9/site-packages/pandas/io/parsers/c_parser_wrapper.py", line 51, in __init__
|
109
|
-
2021-12-29T08:58:33.634832+00:00 app[worker.1]: self._open_handles(src, kwds)
|
110
|
-
2021-12-29T08:58:33.634841+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.9/site-packages/pandas/io/parsers/base_parser.py", line 222, in _open_handles
|
111
|
-
2021-12-29T08:58:33.634933+00:00 app[worker.1]: self.handles = get_handle(
|
112
|
-
2021-12-29T08:58:33.634943+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.9/site-packages/pandas/io/common.py", line 702, in get_handle
|
113
|
-
2021-12-29T08:58:33.635111+00:00 app[worker.1]: handle = open(
|
114
|
-
2021-12-29T08:58:33.635145+00:00 app[worker.1]: FileNotFoundError: [Errno 2] No such file or directory: 'train_y.csv'
|
115
|
-
2021-12-29T09:11:36.477338+00:00 heroku[worker.1]: State changed from crashed to starting
|
116
|
-
2021-12-29T09:11:54.701484+00:00 heroku[worker.1]: Starting process with command `python main.py`
|
117
|
-
2021-12-29T09:11:55.332453+00:00 heroku[worker.1]: State changed from starting to up
|
118
|
-
2021-12-29T09:12:02.838739+00:00 heroku[worker.1]: Process exited with status 1
|
119
|
-
2021-12-29T09:12:02.460135+00:00 app[worker.1]: 2021-12-29 09:12:02.459
|
120
|
-
2021-12-29T09:12:02.460162+00:00 app[worker.1]: Warning: to view this Streamlit app on a browser, run it with the following
|
121
|
-
2021-12-29T09:12:02.460163+00:00 app[worker.1]: command:
|
122
|
-
2021-12-29T09:12:02.460163+00:00 app[worker.1]:
|
123
|
-
2021-12-29T09:12:02.460163+00:00 app[worker.1]: streamlit run main.py [ARGUMENTS]
|
124
|
-
2021-12-29T09:12:02.460876+00:00 app[worker.1]: Traceback (most recent call last):
|
125
|
-
2021-12-29T09:12:02.460880+00:00 app[worker.1]: File "/app/main.py", line 19, in <module>
|
126
|
-
2021-12-29T09:12:02.461008+00:00 app[worker.1]: train_y = pd.read_csv("train_y.csv", encoding="utf-8")
|
127
|
-
2021-12-29T09:12:02.461021+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.9/site-packages/pandas/util/_decorators.py", line 311, in wrapper
|
128
|
-
2021-12-29T09:12:02.461149+00:00 app[worker.1]: return func(*args, **kwargs)
|
129
|
-
2021-12-29T09:12:02.461157+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.9/site-packages/pandas/io/parsers/readers.py", line 586, in read_csv
|
130
|
-
2021-12-29T09:12:02.461313+00:00 app[worker.1]: return _read(filepath_or_buffer, kwds)
|
131
|
-
2021-12-29T09:12:02.461322+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.9/site-packages/pandas/io/parsers/readers.py", line 482, in _read
|
132
|
-
2021-12-29T09:12:02.461506+00:00 app[worker.1]: parser = TextFileReader(filepath_or_buffer, **kwds)
|
133
|
-
2021-12-29T09:12:02.461508+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.9/site-packages/pandas/io/parsers/readers.py", line 811, in __init__
|
134
|
-
2021-12-29T09:12:02.463039+00:00 app[worker.1]: self._engine = self._make_engine(self.engine)
|
135
|
-
2021-12-29T09:12:02.463051+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.9/site-packages/pandas/io/parsers/readers.py", line 1040, in _make_engine
|
136
|
-
2021-12-29T09:12:02.463055+00:00 app[worker.1]: return mapping[engine](self.f, **self.options) # type: ignore[call-arg]
|
137
|
-
2021-12-29T09:12:02.463056+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.9/site-packages/pandas/io/parsers/c_parser_wrapper.py", line 51, in __init__
|
138
|
-
2021-12-29T09:12:02.463056+00:00 app[worker.1]: self._open_handles(src, kwds)
|
139
|
-
2021-12-29T09:12:02.463056+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.9/site-packages/pandas/io/parsers/base_parser.py", line 222, in _open_handles
|
140
|
-
2021-12-29T09:12:02.463057+00:00 app[worker.1]: self.handles = get_handle(
|
141
|
-
2021-12-29T09:12:02.463057+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.9/site-packages/pandas/io/common.py", line 702, in get_handle
|
142
|
-
2021-12-29T09:12:02.463058+00:00 app[worker.1]: handle = open(
|
143
|
-
2021-12-29T09:12:02.463058+00:00 app[worker.1]: FileNotFoundError: [Errno 2] No such file or directory: 'train_y.csv'
|
144
|
-
2021-12-29T09:12:02.901159+00:00 heroku[worker.1]: State changed from up to crashed
|
145
|
-
2021-12-29T09:16:50.750172+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/" host=dip-intern-asaitodev.herokuapp.com request_id=1d035980-620b-4c62-aaaf-b16be9ce2c11 fwd="92.202.111.147" dyno= connect= service= status=503 bytes= protocol=https
|
146
|
-
2021-12-29T09:16:51.189584+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/favicon.ico" host=dip-intern-asaitodev.herokuapp.com request_id=3e6e253c-7beb-4d7a-a00d-819c15311d4f fwd="92.202.111.147" dyno= connect= service= status=503 bytes= protocol=https
|
147
|
-
```
|
148
|
-
|
149
11
|
### 試したこと
|
150
12
|
|
151
13
|
①code=14ということなので↓を記述
|
2
.gitignoreを追加しました!
title
CHANGED
File without changes
|
body
CHANGED
@@ -86,6 +86,10 @@
|
|
86
86
|
st.download_button(label = '予測結果をダウンロード', data=result.to_csv(index=False).encode('utf-8'), file_name="result.csv")
|
87
87
|
```
|
88
88
|
|
89
|
+
```.gitignore
|
90
|
+
*.csv
|
91
|
+
```
|
92
|
+
|
89
93
|
```Herokuのログ
|
90
94
|
2021-12-29T08:58:33.633044+00:00 app[worker.1]: streamlit run main.py [ARGUMENTS]
|
91
95
|
2021-12-29T08:58:33.633698+00:00 app[worker.1]: Traceback (most recent call last):
|
1
動かしたいアプリのコードを掲載しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -10,7 +10,83 @@
|
|
10
10
|
|
11
11
|
### 該当のソースコード
|
12
12
|
|
13
|
-
```
|
13
|
+
```python
|
14
|
+
import streamlit as st
|
15
|
+
import numpy as np
|
16
|
+
import pandas as pd
|
17
|
+
import sklearn
|
18
|
+
from sklearn.ensemble import RandomForestRegressor
|
19
|
+
from sklearn.metrics import mean_squared_error
|
20
|
+
|
21
|
+
|
22
|
+
st.title("応募用紙に対する応募数を予測する")
|
23
|
+
|
24
|
+
#回帰モデルの作成
|
25
|
+
|
26
|
+
#データの読み込み
|
27
|
+
train_y = pd.read_csv("train_y.csv", encoding="utf-8")
|
28
|
+
train_X = pd.read_csv("train_x.csv", encoding="utf-8")
|
29
|
+
|
30
|
+
#train_y["No."]をdropする
|
31
|
+
train_y = train_y.drop(["No."], axis=1)
|
32
|
+
|
33
|
+
#train_xのデータ整形(空白だけ・不要?なカラムの削除)
|
34
|
+
train_X = train_X.dropna(axis=1, how='all')
|
35
|
+
train_X = train_X.fillna(0)
|
36
|
+
train_X = train_X.drop(["掲載期間 開始日", "掲載期間 終了日"], axis=1)
|
37
|
+
|
38
|
+
#train_yとtrain_Xを連結して学習データとして利用する
|
39
|
+
train = pd.concat([train_y.reset_index(drop=True), train_X.reset_index(drop=True)], axis=1)
|
40
|
+
|
41
|
+
#データ変換と分割
|
42
|
+
y = train["応募数 合計"]
|
43
|
+
X = train.drop(["No.", "応募数 合計"], axis=1)
|
44
|
+
|
45
|
+
y_array = np.array(y)
|
46
|
+
X_array = np.array(X)
|
47
|
+
|
48
|
+
#文章のデータ整形が難しかったので、文章のカラムを一括に学習データから外します。
|
49
|
+
X_array = X.select_dtypes(exclude="object")
|
50
|
+
|
51
|
+
from sklearn.model_selection import train_test_split
|
52
|
+
X_train, X_test, y_train, y_test = train_test_split(X_array, y_array, test_size=0.4, random_state=0)
|
53
|
+
|
54
|
+
#回帰モデル作成
|
55
|
+
rfr = RandomForestRegressor(random_state=0)
|
56
|
+
rfr.fit(X_train, y_train)
|
57
|
+
|
58
|
+
y_pred = rfr.predict(X_test)
|
59
|
+
# print(y_pred.shape)
|
60
|
+
|
61
|
+
mse = np.sqrt(mean_squared_error(y_pred, y_test))
|
62
|
+
st.write(f"Mean Squared Error:{mse:.3}")
|
63
|
+
|
64
|
+
#ファイルがアップロードされるまでの処理を書く
|
65
|
+
uploaded_file = st.file_uploader("Choose a file", type=["csv"])
|
66
|
+
|
67
|
+
if uploaded_file is not None:
|
68
|
+
test_X = pd.read_csv(uploaded_file).dropna(axis=1, how="all").fillna(0)
|
69
|
+
|
70
|
+
#応募数合計の予測をするためのデータ成形
|
71
|
+
test_X = test_X.drop(["掲載期間 開始日", "掲載期間 終了日"], axis=1)
|
72
|
+
|
73
|
+
#文章のデータ整形が難しかったので、文章のカラムを一括に学習データから外します。
|
74
|
+
test_X2 = test_X.drop(["No."], axis=1)
|
75
|
+
test_X2 = test_X2.select_dtypes(exclude="object")
|
76
|
+
|
77
|
+
#応募数合計の予測・データの予測
|
78
|
+
test_pred = rfr.predict(test_X2)
|
79
|
+
print(test_pred.shape)
|
80
|
+
|
81
|
+
test_pred = pd.DataFrame(test_pred, columns=["応募数 合計"])
|
82
|
+
result = pd.concat([test_X["No."], test_pred], axis=1)
|
83
|
+
result = result.reset_index(drop=True)
|
84
|
+
|
85
|
+
st.dataframe(result)
|
86
|
+
st.download_button(label = '予測結果をダウンロード', data=result.to_csv(index=False).encode('utf-8'), file_name="result.csv")
|
87
|
+
```
|
88
|
+
|
89
|
+
```Herokuのログ
|
14
90
|
2021-12-29T08:58:33.633044+00:00 app[worker.1]: streamlit run main.py [ARGUMENTS]
|
15
91
|
2021-12-29T08:58:33.633698+00:00 app[worker.1]: Traceback (most recent call last):
|
16
92
|
2021-12-29T08:58:33.633702+00:00 app[worker.1]: File "/app/main.py", line 19, in <module>
|