当前位置: 首页 > 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.jsqmd.com/news/935852/

相关文章:

  • 怎样实现macOS窗口置顶:Topit的3个革命性秘诀指南
  • 开源教育平台Sky Claw:从机电一体化原理到机器人控制实践
  • 基于TL494与4.096MHz晶振的纯硬件50Hz精准信号发生器设计
  • 从自动驾驶到医疗影像:拆解图像处理10大面试题背后的真实工业场景
  • 基础篇--概念原理-21-大模型的推理参数:重复惩罚(Repetition Penalty)是什么?怎么理解?——从原理到实战,一篇讲透
  • 从电路设计到生活应用:创客工作坊的实践路径与硬件开发指南
  • 2026 实用 6 款漏洞扫描软件!一文完整汇总
  • 后端技术10-6种后端语言14维度评分:2026年技术选型终极指南
  • 告别Monkey!用字节开源的Fastbot给你的Android APP做一次‘压力体检’(附完整配置与实战避坑)
  • 微信聊天记录解密终极指南:三步找回你的数字记忆宝库
  • 【RT-DETR实战】117、华为昇腾CANN部署探索:从模型转换到推理踩坑实录
  • Topit终极指南:3个技巧让你的macOS窗口管理效率提升300%
  • TDA2030音频功放DIY:从电路原理到PCB设计的12W放大器实战
  • UE5的Nanite和Lumen,对移动端和VR开发意味着什么?机遇还是性能陷阱?
  • Linux/macOS下用Shell脚本自动批量下载SRA测序数据并转FASTQ
  • 京东智能评价助手:5分钟打造个性化自动化评价方案
  • 7.4V锂电池充电IC芯片,可实现PD快充2.4A的方案分享
  • 2026 年东莞厚街镇新房装修除甲醛哪家好?专业治理优先选东莞佰家环保科技有限公司 - 专注室内空气检测治理
  • 基于Arduino与超声波传感器的虚拟避障机器人仿真与实现
  • 5分钟掌握跨文件Excel搜索:终极批量查询方案
  • 如何将Qwen3.6-35B-A3B-GGUF集成到现有应用:API接口与SDK开发终极指南
  • --和equals区别
  • UT61E万用表输入保护电路升级:低成本提升测量安全性的DIY指南
  • 未来十年红利赛道!薪资碾压传统行业 3 倍,人才缺口 327 万
  • 基于压电传感器与555定时器的低成本靶标命中指示器DIY指南
  • Tinkercad制作SpaceX火箭发射动画:零门槛3D建模与可视化编程实践
  • 2026中小企业数字化营销一网推SEO和GEO优化推广发展研究报告 - 招财兔数字员工
  • 基于LM3915芯片与LED灯带打造动态音频VU表:从原理到实践
  • 为什么 Superpowers 的 brainstorming skill 坚决不写代码?我翻了它的源文件
  • Dragino LPS8网关配置Helium轻量级热点实战指南