Spaces:
Sleeping
Sleeping
Commit
·
d425aca
1
Parent(s):
9c22744
bug442
Browse files
app.py
CHANGED
@@ -90,11 +90,11 @@ class StockPredictor:
|
|
90 |
scaled_data = self.scaler.fit_transform(df[selected_features])
|
91 |
|
92 |
X, y = [], []
|
93 |
-
for i in range(len(scaled_data) -
|
94 |
-
X.append(scaled_data[i])
|
95 |
-
y.append(scaled_data[i+
|
96 |
|
97 |
-
return np.array(X)
|
98 |
|
99 |
def build_model(self, input_shape):
|
100 |
model = Sequential([
|
@@ -109,7 +109,7 @@ class StockPredictor:
|
|
109 |
|
110 |
def train(self, df, selected_features):
|
111 |
X, y = self.prepare_data(df, selected_features)
|
112 |
-
self.model = self.build_model((1, X.shape[2]))
|
113 |
history = self.model.fit(
|
114 |
X, y,
|
115 |
epochs=50,
|
@@ -124,10 +124,10 @@ class StockPredictor:
|
|
124 |
current_data = last_data.copy()
|
125 |
|
126 |
for _ in range(n_days):
|
127 |
-
next_day = self.model.predict(current_data.reshape(1,
|
128 |
predictions.append(next_day[0])
|
129 |
|
130 |
-
current_data = next_day
|
131 |
|
132 |
return np.array(predictions)
|
133 |
|
@@ -218,8 +218,8 @@ def predict_stock(category, stock, stock_item, period, selected_features):
|
|
218 |
predictor = StockPredictor()
|
219 |
predictor.train(df, selected_features)
|
220 |
|
221 |
-
last_data = predictor.scaler.transform(df.iloc[-
|
222 |
-
predictions = predictor.predict(last_data
|
223 |
|
224 |
# 創建日期索引
|
225 |
dates = [datetime.now() + timedelta(days=i) for i in range(6)]
|
|
|
90 |
scaled_data = self.scaler.fit_transform(df[selected_features])
|
91 |
|
92 |
X, y = [], []
|
93 |
+
for i in range(len(scaled_data) - 5):
|
94 |
+
X.append(scaled_data[i:i+5])
|
95 |
+
y.append(scaled_data[i+5])
|
96 |
|
97 |
+
return np.array(X), np.array(y)
|
98 |
|
99 |
def build_model(self, input_shape):
|
100 |
model = Sequential([
|
|
|
109 |
|
110 |
def train(self, df, selected_features):
|
111 |
X, y = self.prepare_data(df, selected_features)
|
112 |
+
self.model = self.build_model((X.shape[1], X.shape[2]))
|
113 |
history = self.model.fit(
|
114 |
X, y,
|
115 |
epochs=50,
|
|
|
124 |
current_data = last_data.copy()
|
125 |
|
126 |
for _ in range(n_days):
|
127 |
+
next_day = self.model.predict(current_data.reshape(1, current_data.shape[0], current_data.shape[1]), verbose=0)
|
128 |
predictions.append(next_day[0])
|
129 |
|
130 |
+
current_data = np.vstack([current_data[1:], next_day])
|
131 |
|
132 |
return np.array(predictions)
|
133 |
|
|
|
218 |
predictor = StockPredictor()
|
219 |
predictor.train(df, selected_features)
|
220 |
|
221 |
+
last_data = predictor.scaler.transform(df[selected_features].iloc[-5:])
|
222 |
+
predictions = predictor.predict(last_data, 5)
|
223 |
|
224 |
# 創建日期索引
|
225 |
dates = [datetime.now() + timedelta(days=i) for i in range(6)]
|