news 2026/6/2 12:47:36

机器学习入门——用Python+Excel实现简单预测

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
机器学习入门——用Python+Excel实现简单预测

机器学习就是让电脑"学习"历史,预测未来。但它不是"水晶球",而是"望远镜"——能看到更远,但看不清楚。给模型"喂"什么数据,它就学什么,特征工程是关键。

一、机器学习在投资中的应用边界

1.1 机器学习的优势

  • 处理复杂模式:非线性关系、高维数据
  • 自动化特征学习:减少人工特征工程
  • 大数据处理:处理海量历史数据

1.2 机器学习的局限

投资领域的特殊挑战

挑战说明
信噪比低市场噪音大,信号微弱
非平稳性市场规律会变化
过拟合风险容易拟合历史噪音
黑盒问题模型难以解释

1.3 适用场景

适合

  • 特征工程(数据预处理)
  • 模式识别(趋势、形态)
  • 分类问题(涨跌预测)
  • 聚类分析(股票分组)

不适合

  • 精确价格预测
  • 长期趋势预测
  • 黑天鹅事件预测

二、线性回归模型

2.1 什么是线性回归?

用线性关系拟合输入(特征)和输出(目标)。

公式

y = w1*x1 + w2*x2 + ... + wn*xn + b

2.2 Python实现

import pandas as pd from sklearn.linear_model import LinearRegression from sklearn.model_selection import train_test_split from sklearn.metrics import r2_score, mean_squared_error # 读取数据 data = pd.read_excel('stock_data.xlsx') # 特征和目标 X = data[['PE', 'PB', 'ROE', '动量']] # 特征 y = data['未来收益'] # 目标 # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3) # 训练模型 model = LinearRegression() model.fit(X_train, y_train) # 预测 y_pred = model.predict(X_test) # 评估 print(f'R²: {r2_score(y_test, y_pred)}') print(f'RMSE: {mean_squared_error(y_test, y_pred, squared=False)}') # 导出系数到Excel coefficients = pd.DataFrame({ '特征': X.columns, '系数': model.coef_ }) coefficients.to_excel('model_coefficients.xlsx', index=False)

2.3 结果导入Excel

# 预测结果导出 test_results = pd.DataFrame({ '实际值': y_test, '预测值': y_pred, '误差': y_test - y_pred }) test_results.to_excel('prediction_results.xlsx', index=False)

三、随机森林模型

3.1 什么是随机森林?

集成学习方法,构建多棵决策树,投票决定结果。

优势

  • 非线性建模能力强
  • 不易过拟合
  • 可输出特征重要性

3.2 Python实现

from sklearn.ensemble import RandomForestRegressor # 训练随机森林模型 rf_model = RandomForestRegressor(n_estimators=100, max_depth=5) rf_model.fit(X_train, y_train) # 预测 y_pred_rf = rf_model.predict(X_test) # 特征重要性 importance = pd.DataFrame({ '特征': X.columns, '重要性': rf_model.feature_importances_ }).sort_values('重要性', ascending=False) importance.to_excel('feature_importance.xlsx', index=False)

3.3 特征重要性可视化

在Excel中:

  1. 导入特征重要性数据
  2. 插入柱状图
  3. 一眼看出哪些因子最重要

四、特征工程基础

4.1 什么是特征工程?

将原始数据转换为模型可用的特征。

重要性

数据和特征决定了机器学习的上限,模型和算法只是逼近这个上限。

4.2 常用特征

价格特征

  • 收益率(日、周、月)
  • 波动率
  • 移动平均线
  • RSI、MACD等技术指标

基本面特征

  • PE、PB、ROE
  • 营收增长率
  • 净利润增长率

宏观特征

  • 市场指数收益
  • 利率水平
  • VIX波动率指数

4.3 特征处理

标准化

from sklearn.preprocessing import StandardScaler scaler = StandardScaler() X_scaled = scaler.fit_transform(X)

缺失值处理

# 填充均值 X.fillna(X.mean(), inplace=True)

五、模型评估指标

5.1 回归问题指标

指标说明优秀标准
解释方差比例>0.5
RMSE均方根误差越小越好
MAE平均绝对误差越小越好

5.2 分类问题指标

指标说明优秀标准
准确率预测正确比例>60%
精确率预测为正且正确>50%
召回率实际为正且预测正确>50%
F1分数精确率和召回率调和平均>0.5

5.3 Excel可视化评估结果

实际vs预测散点图

  • X轴:实际值
  • Y轴:预测值
  • 理想情况:点分布在Y=X线附近

残差图

  • X轴:预测值
  • Y轴:残差(实际-预测)
  • 理想情况:随机分布,无明显模式

六、模型结果与Excel集成

6.1 预测结果展示

Excel表格

股票代码实际收益预测收益误差排名
60051915%12%3%1
000001-5%-2%-3%3

条件格式

  • 预测收益前10%:绿色
  • 预测收益后10%:红色

6.2 模型监控

跟踪模型表现

日期RMSE备注
2024-010.550.08-
2024-020.480.09下降
2024-030.420.10需重新训练

预警

当R²连续3个月下降,触发模型重训练。


七、总结与行动清单

7.1 核心要点

模型适用场景特点
线性回归简单关系可解释性强
随机森林复杂非线性特征重要性
特征工程所有模型决定上限

7.2 下一步行动

  1. 今天就做:安装Python和scikit-learn
  2. 本周完成:用线性回归预测股票收益,导出结果到Excel
  3. 本月目标:尝试随机森林,比较特征重要性

7.3 一个提醒

机器学习不是魔法

  • Garbage in, garbage out(垃圾进,垃圾出)
  • 模型需要持续监控和更新
  • 预测只是参考,不是决策依据

建议

  • 从简单模型开始
  • 重视特征工程
  • 严格区分训练集和测试集
  • 不要过度优化

机器学习是工具,投资智慧才是核心。


标签:机器学习 | Python | 线性回归 | 随机森林 | 股价预测 | 特征工程 | scikit-learn

字数:约2600字

推荐阅读

  • 上一篇:《量化因子投资——多因子模型Excel构建》
  • 下一篇:《交易日志分析——用Excel复盘提升交易水平》
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/2 12:46:28

如何快速批量下载网易云音乐歌单的FLAC无损音乐:终极完整指南

如何快速批量下载网易云音乐歌单的FLAC无损音乐:终极完整指南 【免费下载链接】NeteaseCloudMusicFlac 根据网易云音乐的歌单, 下载flac无损音乐到本地.。 项目地址: https://gitcode.com/gh_mirrors/nete/NeteaseCloudMusicFlac 还在为网易云音乐歌单无法永…

作者头像 李华
网站建设 2026/6/2 12:44:30

基于NE555的PWM调光LED驱动电路设计与复古油灯改造实践

1. 项目概述与核心思路手头有个老旧的煤油灯,玻璃罩子完好,黄铜底座也擦得锃亮,但一想到要灌煤油、点灯芯,还得担心烟熏火燎,就总觉得它和现代家居格格不入。扔了可惜,放着又占地方。正好,手边攒…

作者头像 李华
网站建设 2026/6/2 12:44:24

GriddyCode:基于Godot引擎的终极可定制代码编辑器完全指南

GriddyCode:基于Godot引擎的终极可定制代码编辑器完全指南 【免费下载链接】griddycode A code editor made with Godot. Code has never been more lit! 项目地址: https://gitcode.com/GitHub_Trending/gr/griddycode GriddyCode是一款基于Godot引擎开发的…

作者头像 李华
网站建设 2026/6/2 12:41:22

零依赖纯JS购物车页面:含完整HTML/CSS/JS代码与多张界面截图

本文还有配套的精品资源,点击获取 简介:直接可用的纯JavaScript购物车页面,不引入任何第三方框架或库,所有功能靠原生JS实现。支持添加商品、实时增减数量、自动计算单个商品小计和购物车总价、删除指定商品、一键清空购物车等…

作者头像 李华
网站建设 2026/6/2 12:40:23

java的基础语法--JDBC

一、解决硬编码提取到配置文件中读取方法一:ResourceBundle方法二:ClassLoader书写方式一:书写方式二:二、以指定的类型获取数据将在数据库中获取的数据插入到对象中。注意:Date从数据库中获取的是sql.Date类型需要转换…

作者头像 李华