机器学习入门——用Python+Excel实现简单预测
机器学习就是让电脑学习历史预测未来。但它不是水晶球而是望远镜——能看到更远但看不清楚。给模型喂什么数据它就学什么特征工程是关键。一、机器学习在投资中的应用边界1.1 机器学习的优势处理复杂模式非线性关系、高维数据自动化特征学习减少人工特征工程大数据处理处理海量历史数据1.2 机器学习的局限投资领域的特殊挑战挑战说明信噪比低市场噪音大信号微弱非平稳性市场规律会变化过拟合风险容易拟合历史噪音黑盒问题模型难以解释1.3 适用场景适合特征工程数据预处理模式识别趋势、形态分类问题涨跌预测聚类分析股票分组不适合精确价格预测长期趋势预测黑天鹅事件预测二、线性回归模型2.1 什么是线性回归用线性关系拟合输入特征和输出目标。公式y w1*x1 w2*x2 ... wn*xn b2.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_size0.3) # 训练模型 model LinearRegression() model.fit(X_train, y_train) # 预测 y_pred model.predict(X_test) # 评估 print(fR²: {r2_score(y_test, y_pred)}) print(fRMSE: {mean_squared_error(y_test, y_pred, squaredFalse)}) # 导出系数到Excel coefficients pd.DataFrame({ 特征: X.columns, 系数: model.coef_ }) coefficients.to_excel(model_coefficients.xlsx, indexFalse)2.3 结果导入Excel# 预测结果导出 test_results pd.DataFrame({ 实际值: y_test, 预测值: y_pred, 误差: y_test - y_pred }) test_results.to_excel(prediction_results.xlsx, indexFalse)三、随机森林模型3.1 什么是随机森林集成学习方法构建多棵决策树投票决定结果。优势非线性建模能力强不易过拟合可输出特征重要性3.2 Python实现from sklearn.ensemble import RandomForestRegressor # 训练随机森林模型 rf_model RandomForestRegressor(n_estimators100, max_depth5) 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(重要性, ascendingFalse) importance.to_excel(feature_importance.xlsx, indexFalse)3.3 特征重要性可视化在Excel中导入特征重要性数据插入柱状图一眼看出哪些因子最重要四、特征工程基础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(), inplaceTrue)五、模型评估指标5.1 回归问题指标指标说明优秀标准R²解释方差比例0.5RMSE均方根误差越小越好MAE平均绝对误差越小越好5.2 分类问题指标指标说明优秀标准准确率预测正确比例60%精确率预测为正且正确50%召回率实际为正且预测正确50%F1分数精确率和召回率调和平均0.55.3 Excel可视化评估结果实际vs预测散点图X轴实际值Y轴预测值理想情况点分布在YX线附近残差图X轴预测值Y轴残差实际-预测理想情况随机分布无明显模式六、模型结果与Excel集成6.1 预测结果展示Excel表格股票代码实际收益预测收益误差排名60051915%12%3%1000001-5%-2%-3%3条件格式预测收益前10%绿色预测收益后10%红色6.2 模型监控跟踪模型表现日期R²RMSE备注2024-010.550.08-2024-020.480.09下降2024-030.420.10需重新训练预警当R²连续3个月下降触发模型重训练。七、总结与行动清单7.1 核心要点模型适用场景特点线性回归简单关系可解释性强随机森林复杂非线性特征重要性特征工程所有模型决定上限7.2 下一步行动今天就做安装Python和scikit-learn本周完成用线性回归预测股票收益导出结果到Excel本月目标尝试随机森林比较特征重要性7.3 一个提醒机器学习不是魔法Garbage in, garbage out垃圾进垃圾出模型需要持续监控和更新预测只是参考不是决策依据建议从简单模型开始重视特征工程严格区分训练集和测试集不要过度优化机器学习是工具投资智慧才是核心。标签机器学习 | Python | 线性回归 | 随机森林 | 股价预测 | 特征工程 | scikit-learn字数约2600字推荐阅读上一篇《量化因子投资——多因子模型Excel构建》下一篇《交易日志分析——用Excel复盘提升交易水平》