การพยากรณ์ราคาสินทรัพย์
ตอนนี้ลองใช้โครงข่ายประสาทเทียมเพื่อพยากรณ์ ราคาสินทรัพย์ ซึ่งเป็นองค์ประกอบสำคัญของการวิเคราะห์การเงินเชิงปริมาณและการบริหารความเสี่ยง
จะใช้ข้อมูลราคาหุ้นของ Citibank, Goldman Sachs และ J. P. Morgan ระหว่างปี 2005-2010 เพื่อฝึกโครงข่ายให้พยากรณ์ราคาหุ้นของ Morgan Stanley
โครงข่ายประสาทเทียมที่จะสร้างและฝึกประกอบด้วย input layer หนึ่งชั้น, output layer หนึ่งชั้น และ hidden layer สอง ชั้น
จากนั้น scatter plot จะแสดงให้เห็นว่าราคา Morgan Stanley ที่ พยากรณ์ ได้นั้นห่างจากค่าจริงมากน้อยเพียงใดในช่วงปี 2005-2010 (ขอให้นึกไว้ว่า หากการพยากรณ์ แม่นยำสมบูรณ์ จุดใน scatter plot จะเรียงตัวอยู่บนเส้น 45 องศาพอดี)
ออบเจกต์ Sequential และ Dense พร้อมใช้งานแล้ว รวมถึง DataFrame prices ที่บรรจุราคาของธนาคารเพื่อการลงทุนในช่วงปี 2005-2010
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การบริหารความเสี่ยงเชิงปริมาณด้วย Python
คำแนะนำการฝึกหัด
- กำหนดข้อมูล input เป็นราคาหุ้น
pricesของธนาคารทุกแห่ง ยกเว้น Morgan Stanley และกำหนดข้อมูล output เป็นราคาpricesของ Morgan Stanley เท่านั้น - สร้างโมเดลโครงข่ายประสาทเทียมแบบ
Sequentialพร้อม hidden layer แบบDenseสองชั้น ได้แก่ ชั้นแรกมี 16 neurons (และ input neuron 3 ตัว) และชั้นที่สองมี 8 neurons - เพิ่ม output layer แบบ Dense จำนวน 1 neuron เพื่อแทนราคาหุ้นของ Morgan Stanley
- คอมไพล์โครงข่ายประสาทเทียม จากนั้นฝึกโมเดลด้วยการ fit
model
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# 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()