手把手教你使用Logistic回归LDA和QDA模型预测指数涨跌 1 引言机器学习(Machine Learning)是人工智能(AI)的重要组成部分,目前已广泛应用于数据挖掘自然语言... 

机器学习(MachineLearning)是人工智能(AI)的重要组成部分,目前已广泛应用于数据挖掘、自然语言处理、信用卡欺诈检测、证券市场分析等领域。量化投资作为机器学习在投资领域内最典型的应用之一,已经越来越广泛的出现在我们的视野中。

机器学习可简单理解为利用统计模型或算法拟合样本数据并进行预测,其模型算法根据学习任务可以分为分类、回归和聚类。分类方法是对离散型随机变量建模或预测的监督学习方法。分类是按照某种标准给对象贴标签,再根据标签来区分归类。而所谓的学习,其本质就是找到特征与标签间的关系(mapping即映射)。换句话说,分类预测模型是一个从输入特征到离散的输出标签之间的映射函数。分类方法常用的有朴素贝叶斯、分类树、支持向量机、KNN、集成学习(包括随机森林)和深度学习等。

股票指数涨跌的预测本质上是一个分类问题。机器算法有很多种,没有最好的模型,只有更适合解决当前问题的算法。当然,本文的目的不是寻找最优的算法,而是机器学习在分析预测的应用。基于此,本文以Logistic回归(LR)、线性判别法(LDA)、二次判别分析(QDA)模型为例,对上证综指的涨跌进行预测。后续推文将会应用其他可能更有效的算法,包括SVM、集成学习和深度学习等。

逻辑回归(LogisticRegression,LR)是广义线性回归分析模型之一,其本质属于分类问题,因此主要用于被解释变量为分类(离散,如0,1)变量的情形。在分类问题上,逻辑回归要优于线性回归,因为线性回归在拟合被解释变量为离散时会出现负概率的情况,会导致错误的样本分类。而逻辑回归采用对数函数将预测范围压缩到0与1之间,从而提升预测准确率。

假设L1,L2,…Ln为预测因子,LR模型使用对数公式对上涨(U)的条件概率建立以下模型:

一般使用最大似然法来拟合上述模型。关于逻辑回归的详细推导此处不再展开,想进一步了解的可以找本计量经济学入门教材学习(如伍德里奇的《计量经济学导论》)。机器学习库scikit-learn提供了估计模型的“黑盒子”。

线性判别法(LDA)

线性判别分析,全称LinearDiscriminantAnalysis(LDA)与LR的区别在于,LR使用对数函数将P(Y=U|L1,L2,...,Ln)建模为给定预测变量Li的响应Y的条件分布;在LDA中,给定Y,分别对Li变量的分布进行建模,并通过贝叶斯定理获得P(Y=U|L1,L2,...,Ln)。

本质上,LDA是通过假设预测变量来自多元高斯分布得出的。在计算出该分布的参数的估计值之后,可以将这些参数输入贝叶斯定理中,以便对观测值属于哪个类别做出预测。LDA假定所有类别共享相同的协方差矩阵。由于scikit-learn提供了拟合和预测方法,所以不用太担心对预测所需的分布或后验概率的公式不了解。

二次判别分析(QDA)

预测主要分为三个步骤:

第一,根据上证综指指数收益率的正负划分为上涨(1)和下跌(-1)两种类型,作为被解释变量。

df=pd.DataFrame()

#上涨用1表示,下跌(含0)为-1

df=df.dropna()

returndf

预测准确率:LR模型:0.557LDA模型:0.566QDA模型:0.590

从模型的预测准确率来看,并不是很理想,三个模型中使用QDA的效果要好一些(可能因为训练数据集样本较多,而测试集分配较少),准确率也只有0.59,只比投掷硬币好一丁点。下面以QDA模型为例,使用混淆矩阵和ROC曲线对模型的预测性能作进一步评价,混淆矩阵图没有给出,ROC曲线图很直观,此处不过多分析。model=QDA()

model.fit(X_train,y_train)#模型在测试数据集上的预测

pred=model.predict(X_test)

#构建混淆矩阵

cm=pd.crosstab(y_test,pred)

cm

#绘制混淆矩阵图

#计算正例的预测概率,而非实际的预测值,用于生成ROC曲线的数据

y_score=model.predict_proba(X_test)[:,1]

#fpr表示1-Specificity,tpr表示Sensitivity

fpr,tpr,threshold=roc_curve(y_test,y_score)

#计算AUC的值

roc_auc=metrics.auc(fpr,tpr)

#绘制面积图

plt.figure(figsize=(8,6))

#添加对角线

#添加文本信息

#添加x轴与y轴标签

plt.show()

本文主要以逻辑回归(LR)、线性判别分析(LDR)、二次线性判别分析(QDR)为例,展示了机器学习算法在股价涨跌预测上的应用。模型预测效果不甚理想,并不代表机器学习算法的失效,主要原因可能是没有选择好合适的预测的因子,关于什么样的因子才是预测股指涨跌的最好因素留待读者自己去挖掘(这也是量化研究者孜孜不倦在追求的)。

THE END
1.数据挖掘的基本步骤和流程解析请阐述数据挖掘的基本过程和步骤通过对数据挖掘基本步骤和流程的深入理解,有助于我们更好地挖掘数据价值。 下面用一个具体的例子更详细的解释数据挖掘流程(具体代码用python语言实现)。 在这个例子中,我们将使用一个假设的电商数据集来进行用户购买行为的预测。 1. 明确目标 我们的目标是预测用户是否会购买某种商品。这属于二分类问题。 https://blog.csdn.net/m0_67484548/article/details/142665300
2.什么是数据挖掘的流程?一步步带你掌握数据挖掘的完整过程在数据预处理之后,下一步是对数据进行探索性分析。这一步骤的目的是理解数据的结构和模式,为后续的模型建立提供指导。数据分析可以使用统计方法和可视化工具,例如通过绘制散点图、直方图等来发现数据中的趋势和异常。 5. 模型建立 模型建立是数据挖掘的核心步骤。在这一阶段,需要选择合适的算法和模型来从数据中提取知https://www.cda.cn/view/204893.html
3.数据挖掘的六个步骤有哪些帆软数字化转型知识库数据挖掘的六个步骤分别是:问题定义、数据收集与准备、数据清洗、数据转换与特征选择、模型建立与评估、结果解释与部署。其中问题定义是数据挖掘过程的首要步骤,直接影响整个项目的成功与否。问题定义涉及明确业务目标、研究目标和所需的数据类型。只有在问题定义清晰的情况下,后续的每一步骤才能有的放矢,确保数据挖掘的结https://www.fanruan.com/blog/article/594251/
4.数据挖掘的基本概念和工作流程金融IT那些事儿步骤四:建模(modeling) 在建模阶段,要选择建模方法,并通过构建和评估模型对参数进行校准。对于同一个数据挖掘的问题类型,可以选择使用多种建模方法,但对于每一个要使用的技术要分别对待。一些建模方法对数据的形式有具体的要求,因此,在这一阶段,重新回到数据准备阶段执行某些任务有时是非常必要的。 https://www.shangyexinzhi.com/article/4052696.html
5.数据挖掘技术在客户关系管理中如何应用四、客户关系管理应用数据挖掘的步骤 1.需求分析 只有确定需求,才有分析和预测的目标,然后才能提取数据、选择方法,因此,需求分析是数据挖掘的基础条件。数据挖掘的实施过程也是围绕着这个目标进行的。在确定用户的需求后,应该明确所要解决的问题属于哪种应用类型,是属于关联分析、分类、聚类及预测,还是其他应用。应对现有https://www.wenshubang.com/xingzhengguanlibiyelunwen/151599.html
6.网络资源:数据挖掘实战1(电力窃漏电用户识别)本次学习我们将使用“什么是数据挖掘”中的挖掘过程:根据实际问题定义挖掘目标、取什么样的原始数据、对原始数据的探索分析、如何对数据进行处理、建立合适的模型完成目标、评估模型完成的好不好。 问题背景:实际生活中,有很多人可能会偷别人的电用,或者计量电量的设备坏了,造成无法根据实际用电情况计价,可能导致用户多https://nonlinear.wtu.edu.cn/info/1117/1665.htm
7.网络营销全部27.“对问卷进行复合检验”属于网络市场调查步骤中的()。 A.拟定调查问卷B.撰写调查报告C.数据处理与分析D.确定市场调查对象【注释】:第四章第二节 第125页 数据处理与分析包括对问卷的复合检验、被调查者身份验证、数据的分类与汇总、统计图表的生成等。 28.在判断、比较多个网上商城商品质量和价格基础上再购物https://www.wjx.cn/xz/261160017.aspx
8.高效实施数据挖掘的方法和步骤yuanye1014产生的结果是否易为商业用户所理解?如果不能,需要采取什么步骤以使结果便于读懂?该工具是否要求商业专家参与整个数据挖掘过程? ? 第六阶段:结果发布 数据挖掘过程可能很简单,如只是对商业问题给出一个建议,也可能很复杂,如应用一个应用程序向信息客户提供新知识。无论简单还是复杂,在结果发布阶段,都要用到该过程。http://blog.chinaunix.net/uid-64814-id-2690182.html
9.数据仓库(四)之ETL开发腾讯云开发者社区ETL是数据仓库的后台,主要包含抽取、清洗、规范化、提交四个步骤,传统数据仓库一般分为四层模型。 分层的作用 STG层 在维度建模阶段已经确定了源系统,而且对源系统进行了数据评估。STG层是根据CDC策略把各个源系统的数据抽取到数据仓库中。STG层主要是面向批处理的形式,如果是根据日志信息实时同步,可以跳过STG层https://cloud.tencent.com/developer/article/2037781
10.网络营销本案例为了增添课堂的趣味性,引入竞争的互动性,采用的是后者,将整个团队分成四个电商品牌队,有各自的LOGO和口号,便于后期品牌宣传与产品推广。各品牌队成员要合理处理竞争关系,实现良性循环。(二)明确岗位职责。运营部的整体职责是数据分析、活动策划、整体协调;技术部的整体职责是商品拍摄、美工设计;推广部的整体职责https://www.ruiwen.com/w/468223.html
11.数据挖掘简介(转载)LmaomaoCRISP-DM分为六个阶段(phase)和四个层次(level),分别简介如下。 六个阶段如下。 1.定义商业问题(business understanding) 本阶段的主要工作是要针对企业问题以及企业需求进行了解确认,针对不同的需求做深入的了解,将其转换成数据挖掘的问题,并拟定初步构想。在此阶段中,需要与企业各层次进行讨论,只有对要解决的问题https://www.cnblogs.com/Gihub/p/3809009.html
12.机器学习入门的四个步骤:初学者入门与实践的自上而下策略一旦您启动并运行 Weka,您需要练习应用机器学习的 6 个步骤。 Weka 安装包括一个包含许多标准机器学习数据集的数据目录,大多数来自实际的科学问题域。在UCI 机器学习库上还有大量优秀的数据集可供试用和学习。这些数据集是您开始学习和练习的绝佳场所。 https://www.kancloud.cn/apachecn/ml-mastery-zh/1952284
13.使用面向数据仓库的基本数据库功能注:此外,您还可以在下列步骤中将光标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。单击屏幕截图即可将其隐藏。 概述 Oracle 数据库 10g是面向数据仓库的领先关系数据库,也是第一个完整的商务智能平台。它不但满足了性能、可伸缩性和可管理性等基本核心要求,而且还满足了围绕 ETL 处理、数据分析 (https://www.oracle.com/ocom/groups/public/@otn/documents/webcontent/228948_zhs.htm
14.数据挖掘的过程张杰整理数据挖掘是指一个完整的过程,该过程从大型数据库中挖掘先前未知的、有效的,可实用的信息,并使用这些信息做出决策或丰富知识。下图描述了数据挖掘的主要步骤和过程。 数据挖掘过程中各步骤的大体内容如下: 第一步:确定挖掘目的。认清数据挖掘的目的是数据挖掘的重要一步。挖掘的最后结果是不可预测的,但要探索的问题应https://maimai.cn/article/detail?fid=1405334297&efid=7lwV824VMzvaUfEhWMvd3A
15.数据挖掘方法论具体实施步骤01、数据挖掘方法论具体实施步骤 第一步:业务理解 指从业务角度来理解项目目标和要求,接着把这些理解知识转换成数据挖掘问题的定义和实现目标的最初规划。 第二步:数据理解 指从数据收集开始,然后接着是一系列活动,这些活动的目的是:熟悉数据,甄别数据质量问题、发现对数据的真知灼见、或者探索出令人感兴趣的数据子https://www.jianshu.com/p/03e2b16e3403
16.数据挖掘的四种基本方法粗集法基础理论是一种科学研究不精准、不确定性专业知识的数学工具。粗集办法几个优势:不必得出附加信息;简单化键入信息的表述室内空间;优化算法简易,便于实际操作。粗集处理的方针是附近二维关系表的信息表。 数据挖掘的步骤 解读需求要考虑专家、工作人员的意见;数据可从业务层的数据库中提取、抽样;在计算机分析技术https://www.dongao.com/cma/zy/202406204447292.html
17.探索性数据分析(EDA)的关键步骤及类型要掌握探索性数据分析,数据分析新手需要了解并实践上述欧空局数据科学步骤。了解有关数据科学训练营培训计划的更多信息。 六、探索性数据分析的类型 在单变量分析中,结果是一个单一变量,所有收集到的数据都归于该变量。没有因果关系。例如,12 个月的数据显示了每个月生产的产品。在二元分析中,结果取决于两个变量,例https://www.liuxueshengtutor.com/UndergraduateCourse/4480.html
18.运营数据分析方案(新媒体运营干货数据分析数据分析运营必备的上面我们提到了数据分析与商业结果之间关联的重要性,所有商业数据分析都应该以业务场景为起始思考点,以业务决策作为终点。数据分析该先做什么、后做什么?基于此,我们提出了商业数据分析流程的五个基本步骤。 第一步,要先挖掘业务含义,理解数据分析的背景、前提以及想要关联的业务场景结果是什么。 https://www.niaogebiji.com/article-491905-1.html
19.数据挖掘流程一般包含六个步骤数据挖掘流程一般包含以下六个步骤: 问题定义:在开始数据挖掘之前,首先需要清晰地定义出待解决的问题,明确挖掘的目标。 数据准备:包括数据的选择、清洗、预处理等步骤。数据的选择是指从原始数据中选取与挖掘目标相关的数据;数据的清洗是指去除重复、错误或无效的数据;数据的预处理则包括数据变换、特征提取等操作,以便https://www.ai-indeed.com/encyclopedia/7107.html