2017-02-17

開始以機器學習預測地震(2):以Random Forest預測地震發生時間

2017-02-15 南非德本站 Durban, South Africa Station 空氣2號 Air 2 (Arduino Uno + LF298N) - Analysis

預測地震(Earthquake Prediction, Quake Forecast)包含3個部分:時間(Time)、地點(Location)、規模(Magnitude)。

這篇將以Random Forest預測地震發生時間。
也就是說:預測山丘形訊號結束之後的第幾天將發生地震。

上一篇得到的數據為:
ID Duration Height  Time    Location     Magnitude
 2       4         6          2     Philippines       6.5
 3       1         3.5       1        Malawi          5.2
 4       2         3          2      Indonesia        5.2
 5       1         2          1        Alaska           5.3
 6       1         3          1         Japan           5.0

首先,將這些數據儲存成quake_signals.csv檔案,以方便後續的訓練:

將數據儲存成quake_signals.csv檔案


接下來,訓練Random Forest模形。
程式碼如下:

# Machine Learning: Quake Forecast Time
import pandas as pd
from sklearn.ensemble import RandomForestClassifier

train = pd.read_csv('quake_signals.csv')
print(train)

features = ['Duration', 'Height']
data = train[features]
print(data)

target = train['Time']
print(target)

model = RandomForestClassifier()
model.fit(data, target)
quake_time = model.predict([[2, 2.3]])
print(quake_time)

程式執行結果如下:

以Random Forest預測地震發生時間


所以,Random Forest預測地震發生時間為:山丘形訊號結束後1日以內。

台灣地震預測研究所 所長
林湧森
2017-02-17 06:53 UTC+8

沒有留言:

張貼留言