我使用scikit-learn来预测股票市场的方向,使用的是随机森林和随机树分类器。我的特征包括简单的移动平均线等指标。我的问题是,使用默认参数的两种算法预测效果都相对较差(大约50%)。我该如何提高准确率呢?代码如下:
X = data_from_csv[['RSI', 'CCI', '5SMA', '10SMA', 'ROC', 'Momentum', '%K', '%D']].astype(np.float32) y = data_from_csv['Direction1'].astype(np.float32) X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.2) rf = RandomForestClassifier() rf.fit(X_train,y_train) y_pred = rf.predict(X_test) print metrics.accuracy_score(y_test, y_pred), 'train/test split random forest' X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.2) rt = tree.DecisionTreeClassifier() rt.fit(X_train,y_train) y_pred = rt.predict(X_test) print metrics.accuracy_score(y_test, y_pred), 'train/test split decision tree'
回答:
最可能的情况是你的训练数据没有很好的预测价值。考虑到你试图“预测股票市场的方向”,这并不令人惊讶,因为这个问题本身就很难解决。