预测结果,千股跌停,还是有点离谱。
神经网络参数通过GridSearchCV网格搜索获取最优参数。
1.源代码
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.neural_network import MLPClassifier
dataSource = pd.read_csv('data/紫光股份神经网络数据源.csv', encoding='gbk', header=0)
labels = np.array(dataSource['nextLabel'])
dataSource = dataSource.drop(columns =['symbol','name','label','nextLabel'])
print(dataSource)
print(labels)
x_train,x_test,y_train,y_test = train_test_split(dataSource, labels, test_size=0.25,
random_state=0)
print('-------test_features----------')
print(x_test)
print('-------test_labels----------')
print(y_test)
# 评估模型性能
# 例如,使用模块sklearn.metrics中的函数来评估性能
# 最佳参数: {'activation': 'identity', 'alpha': 0.0001, 'hidden_layer_sizes': (100,), 'solver': 'sgd'}
# 最佳分数: 0.6401098901098902
# 最佳参数: {'activation': 'logistic', 'alpha': 0.001, 'hidden_layer_sizes': (50, 100, 50), 'solver': 'lbfgs'}
# 最佳分数: 0.6406593406593407
# model = MLPClassifier(solver='lbfgs', activation='logistic',alpha=0.001,hidden_layer_sizes=(50, 100, 50))
model = MLPClassifier(solver='sgd', activation='identity',alpha=0.0001,hidden_layer_sizes=(100,))
model.fit(x_train, y_train)
print('测试集前5条数据特征值:')
print(pd.DataFrame(x_test).head(10))
print('-----------------------------------------------------')
print('测试集前5条数据目标值:')
print(pd.DataFrame(y_test).head(10))
print('-----------------------------------------------------')
# 使用模型预测
y_predict = model.predict(x_test)
print('使用模型预测测试集前5条数据的目标值:')
print(pd.DataFrame(y_predict).head(10))
# 训练后用测试集对模型进行评分
print("模型评分:", model.score(x_test, y_test))
print('-----------------------------------------------------')
2.数据源
https://download.csdn.net/download/qq_14945847/88831511
3.预测结果
天啊,结果有点离谱,明天会是千股下跌吗?
后续会测试MLPRegressor回归算法进行训练,预测下一个交易日可能的收盘价。
目前模型不稳定,仅供参考,无任何投资价值。