当前位置: 首页 > news >正文

机器学习入门——用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复盘提升交易水平》
http://www.zskr.cn/news/1447194.html

相关文章:

  • 基础篇--概念原理-21-大模型的推理参数:重复惩罚(Repetition Penalty)是什么?怎么理解?——从原理到实战,一篇讲透
  • 开源教育平台Sky Claw:从机电一体化原理到机器人控制实践
  • 从电路设计到生活应用:创客工作坊的实践路径与硬件开发指南
  • Linux/macOS下用Shell脚本自动批量下载SRA测序数据并转FASTQ
  • 7.4V锂电池充电IC芯片,可实现PD快充2.4A的方案分享
  • 5分钟掌握跨文件Excel搜索:终极批量查询方案
  • Tinkercad制作SpaceX火箭发射动画:零门槛3D建模与可视化编程实践
  • 基于LM3915芯片与LED灯带打造动态音频VU表:从原理到实践
  • 为什么 Superpowers 的 brainstorming skill 坚决不写代码?我翻了它的源文件
  • 保姆级教程:在Ubuntu 20.04上为AirSim ROS包添加自定义控制接口(以角速度推力为例)
  • Arduino机械臂DIY指南:从零搭建桌面级机器人助手
  • Arduino步进电机与旋转编码器实现手摇曲柄远程控制方案
  • 5分钟掌握kill-doc:终极免费文档下载自动化工具指南
  • QMCDecode终极指南:如何在Mac上免费解锁QQ音乐加密格式,实现跨平台自由播放
  • 我的学习情况
  • 10.Linux笔记:应用编程开始、文件IO
  • 集团首都公报:武汉市放飞炬人产业引导基金有限责任公司财政处批准 创设 集体组织债 资本市场种品 将来为农村集体经济组织和乡镇经济管理提供资本来源和货币供应。
  • 惠城黄金回收哪家强?惠奢汇(惠城旗舰店)等你来选! - 生活测评小能手
  • 基于Arduino Leonardo/Micro打造12轴USB摇杆控制器:从HID协议到实战
  • Python 从不起眼到AI时代的王者之路
  • ComfyUI-VideoHelperSuite视频处理模块防御性编程实践与零除错误修复
  • 计算机软件转 IC 验证(Design Verification, DV),学习路径
  • 基于Arduino Nano RP2040的DIY可编程USB游戏手柄全流程开发指南
  • 基于Arduino与超声波传感器的智能扫地机器人V2.0设计与实现
  • 大量频繁数据更新表格不卡顿的核心原因(通用原理 + 对应上套代码的设计)
  • 【CGLIB】在你熟悉的 Flink、ShardingSphere-JDBC 等组件中,是否存在 CGLIB 的使用痕迹?如何排查?
  • Arduino超声波测距系统:从传感器原理到社交距离监测器实战
  • 办公用的免费证件照制作入口有什么?2026职场人必备免费入口 - 科技大爆炸
  • 天赐范式第61天:为“雨”平反——从一次大模型“服务器繁忙”看 PDE 求解器的代数独立性——何以解忧,唯有杜康~
  • 用Python写个脚本,自动帮你算出下一个“黄道吉日”(附完整代码)