Dự đoán giá tài sản
Giờ bạn có thể dùng một mạng neural để dự đoán giá tài sản, một thành phần quan trọng của phân tích tài chính định lượng cũng như quản trị rủi ro.
Bạn sẽ dùng giá cổ phiếu giai đoạn 2005–2010 của Citibank, Goldman Sachs và J. P. Morgan để huấn luyện mạng dự đoán giá cổ phiếu của Morgan Stanley.
Bạn sẽ tạo và huấn luyện một mạng neural với một tầng đầu vào, một tầng đầu ra và hai tầng ẩn.
Sau đó một biểu đồ scatter sẽ hiển thị để xem giá dự đoán của Morgan Stanley lệch bao nhiêu so với giá thực tế trong giai đoạn 2005–2010. (Nhớ rằng nếu dự đoán hoàn hảo, các điểm trên biểu đồ scatter sẽ nằm trên đường 45 độ của đồ thị.)
Các đối tượng Sequential và Dense đã có sẵn, cùng với DataFrame prices chứa giá của các ngân hàng đầu tư từ 2005–2010.
Bài tập này là một phần của khóa học
Quản trị Rủi ro Định lượng với Python
Hướng dẫn bài tập
- Đặt dữ liệu đầu vào là toàn bộ
pricescủa các ngân hàng ngoại trừ Morgan Stanley, và dữ liệu đầu ra là chỉpricescủa Morgan Stanley. - Tạo một mạng neural
Sequentialtênmodelvới hai tầng ẩnDense: tầng đầu có 16 neuron (và ba neuron đầu vào), tầng thứ hai có 8 neuron. - Thêm một tầng đầu ra Dense gồm 1 neuron để biểu diễn giá của Morgan Stanley.
- Biên dịch (compile) mạng neural và huấn luyện nó bằng cách fit
model.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# Set the input and output data
training_input = prices.____('Morgan Stanley', axis=1)
training_output = prices['Morgan Stanley']
# Create and train the neural network with two hidden layers
model = ____()
model.add(Dense(16, input_dim=____, activation='sigmoid'))
model.add(____(8, activation='relu'))
model.add(____(1))
model.____(loss='mean_squared_logarithmic_error', optimizer='rmsprop')
model.____(training_input, training_output, epochs=100)
# Scatter plot of the resulting model prediction
axis.scatter(training_output, model.predict(training_input)); plt.show()