华泰证券AI选股周报:Stacking长期胜出,多策略对比分析

需积分: 0 0 下载量 171 浏览量 更新于2024-06-22 收藏 603KB PDF 举报
华泰证券于2018年05月20日发布的《人工智能选股周报》指出,本周在不同的股票市场和策略配置下,不同的人工智能模型表现出不同的优势。报告主要关注了全A选股(非行业中性)、沪深300行业中性以及中证500行业中性三种情况下的选股策略。 首先,在全A选股(非行业中性)方面,XGBoost算法表现最为出色,它在本周获得了1.40%的绝对收益和1.34%的超额收益,显示出其在市场波动中的稳定性和盈利能力。XGBoost是一种集成学习方法,通过组合多个弱分类器来提高预测精度。 在沪深300行业中性策略中,Stacking算法成为赢家,尽管本周沪深300指数涨幅较小,但Stacking策略相对基准的超额收益为-0.07%,表明其在行业调整时可能有更好的风险控制能力。Stacking是一种模型融合技术,通过结合多个基础模型的预测结果来提高整体性能。 在中证500行业中性策略中,逻辑回归表现最佳,实现了0.81%的绝对收益和0.75%的超额收益,显示其对小盘股市场动态有较好的捕捉能力。 报告还提到了其他策略,如SVM和随机森林,它们在最近三个月和一年的超额收益上分别位居前列。SVM(支持向量机)以其在数据分类和回归问题上的优势,展现出了长期投资的价值;而随机森林则以其强大的预测和泛化能力,成为长期超额收益的主要贡献者。 值得注意的是,投资者在使用这些策略时,应结合市场环境和自身的投资目标,因为报告中提到的超额收益并不保证未来表现,且投资者需了解并遵循证券研究报告中的重要声明和华泰证券的股票和行业评级标准,以做出明智的投资决策。 总结来说,这份人工智能选股周报揭示了人工智能在股票投资中的应用潜力,展示了不同模型的优势和适用场景,同时也强调了投资者在应用这些技术时需要考虑的全面因素。通过理解和分析这些信息,投资者可以更有效地利用人工智能技术进行股票投资,提高投资组合的长期回报。

把这段代码的PCA换成LDA:LR_grid = LogisticRegression(max_iter=1000, random_state=42) LR_grid_search = GridSearchCV(LR_grid, param_grid=param_grid, cv=cvx ,scoring=scoring,n_jobs=10,verbose=0) LR_grid_search.fit(pca_X_train, train_y) estimators = [ ('lr', LR_grid_search.best_estimator_), ('svc', svc_grid_search.best_estimator_), ] clf = StackingClassifier(estimators=estimators, final_estimator=LinearSVC(C=5, random_state=42),n_jobs=10,verbose=1) clf.fit(pca_X_train, train_y) estimators = [ ('lr', LR_grid_search.best_estimator_), ('svc', svc_grid_search.best_estimator_), ] param_grid = {'final_estimator':[LogisticRegression(C=0.00001),LogisticRegression(C=0.0001), LogisticRegression(C=0.001),LogisticRegression(C=0.01), LogisticRegression(C=0.1),LogisticRegression(C=1), LogisticRegression(C=10),LogisticRegression(C=100), LogisticRegression(C=1000)]} Stacking_grid =StackingClassifier(estimators=estimators,) Stacking_grid_search = GridSearchCV(Stacking_grid, param_grid=param_grid, cv=cvx, scoring=scoring,n_jobs=10,verbose=0) Stacking_grid_search.fit(pca_X_train, train_y) Stacking_grid_search.best_estimator_ train_pre_y = cross_val_predict(Stacking_grid_search.best_estimator_, pca_X_train,train_y, cv=cvx) train_res1=get_measures_gridloo(train_y,train_pre_y) test_pre_y = Stacking_grid_search.predict(pca_X_test) test_res1=get_measures_gridloo(test_y,test_pre_y) best_pca_train_aucs.append(train_res1.loc[:,"AUC"]) best_pca_test_aucs.append(test_res1.loc[:,"AUC"]) best_pca_train_scores.append(train_res1) best_pca_test_scores.append(test_res1) train_aucs.append(np.max(best_pca_train_aucs)) test_aucs.append(best_pca_test_aucs[np.argmax(best_pca_train_aucs)].item()) train_scores.append(best_pca_train_scores[np.argmax(best_pca_train_aucs)]) test_scores.append(best_pca_test_scores[np.argmax(best_pca_train_aucs)]) pca_comp.append(n_components[np.argmax(best_pca_train_aucs)]) print("n_components:") print(n_components[np.argmax(best_pca_train_aucs)])

2023-07-22 上传