




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章数据建模:无监督学习Python金融数据分析与应用(微课版)目录CONTENTS无监督学习概述6.1主成分分析6.2因子分析6.3K均值聚类6.46.1无监督学习概述6.1无监督学习概述无监督学习的特点【案例6-1】上市公司IPO首日表现分析上市公司IPO首日表现可以通过首日开盘价、首日收盘价、首日交易股数、首日交易金额等数据来反映从横向看,希望对7个指标反映的信息进行归纳和概括,挖掘其中具有共性的东西(目标1)从纵向看,希望按照IPO首日表现,对上市公司进行分类(目标2),为后续的投资决策提供参考为达成以上两个目标,有监督学习算法已经不再适用无监督学习不需要人工标注的训练数据来指导模型进行学习在无监督学习中,模型需要从数据中习得隐藏的模式、结构或规律6.1无监督学习概述常用算法降维分析用于将数据点划分为不同的组或簇,通常要求组内或簇内差异尽可能小而组间或簇间差异尽可能大常用的聚类算法包括K均值聚类、层次聚类和密度聚类等不同于分类问题,聚类问题没有现成的类别标签,通常需要探索数据的潜在结构聚类算法在图像压缩、市场细分上有广泛的应用用于减少数据的维度,保留数据中重要的信息常用的降维分析包括主成分分析(PrincipalComponentAnalysis,PCA)和t分布随机邻域嵌入(t-DistributedStochasticNeighborEmbedding,t-SNE)等数据降维一方面有利于实现高维数据的可视化,另一方面也能提取数据的重要特征,减少冗余信息降维后的数据用于机器学习模型构建时,也有利于提升模型训练效率。用于识别数据集中的异常值或离群点常用的异常检测算法包括孤立森林和LOF(LocalOutlierFactor,局部离群因子)等可以用于检测网络攻击、信用卡欺诈等异常行为聚类分析异常检测关联规则用于从大规模数据集中发现行为之间(如购买商品A与购买商品B)的相关性通过分析数据集中的交易记录或者事件序列,关联规则挖掘可以揭示行为的频繁出现模式,为决策提供支持6.2主成分分析6.2.1主成分分析算法思想6.2主成分分析
主成分分析算法的思想是构造如下线性变换:推广到多维
6.2.1主成分分析算法思想6.2主成分分析主成分个数的确定
当累计贡献率达到70%时,主成分已经可以覆盖大部分数据的信息;当累计贡献率达到80%时,主成分已经可以保留较多的关键信息;当累计贡献率达到90%时,主成分已经可以较为完整地保留数据的信息实践中可以结合具体情况,依据累计贡献率来确定需要保留的主成分数量
6.2.2主成分分析案例实践6.2主成分分析基于主成分回归的IPO首日成交量预测实践目标对上市公司IPO相关数据进行主成分分析,提取合适数量的主成分以提取的主成分为输入变量建立IPO首日成交量的线性回归模型(即主成分回归模型)评价模型的性能并与线性回归模型进行对比fromsklearn.decompositionimportPCA#主成分分析pca=PCA()pca_result=pca.fit_transform(X_train)vr=pca.explained_variance_ratio_#获取主成分贡献率print('主成分贡献率:')print(np.around(vr,decimals=3))#输出贡献率cvr=np.cumsum(vr)#计算累计贡献率print('主成分累计贡献率:')print(np.around(cvr,decimals=3))#输出累计贡献率必要的库主成分分析#绘制散点图plt.scatter(pca_result[:,0],pca_result[:,1],edgecolor='black',facecolor='grey')plt.xlabel('第一主成分')plt.ylabel('第二主成分')plt.show()绘制散点图#主成分回归pca=PCA(n_components=2)#提取两个主成分X_pca=pca.fit_transform(X_train)reg=LinearRegression()reg.fit(X_pca,y_train)#以主成分为输入变量建立线性回归模型coef_pca=reg.coef_coef_original=np.dot(ponents_.T,coef_pca)#还原回归系数feature_names=data_cleaned.iloc[:,1:].columnsfori,(coef,name)inenumerate(zip(coef_original,feature_names)):print(f'{name}:{coef:.3f}')#输出原始变量系数及对应的变量名#使用训练好的PCA模型将测试集数据进行降维X_pca_test=pca.transform(X_test)#使用训练好的线性回归模型对降维后的测试集数据进行预测y_pred=reg.predict(X_pca_test)#计算并输出R方值r2=r2_score(y_test,y_pred)print(f'测试集R方:{r2:.3f}')主成分回归6.2.2主成分分析案例实践6.2主成分分析基于主成分回归的IPO首日成交量预测输入变量线性回归系数主成分回归系数发行价格(元)4658595.673-1543051.301每股面值(元)-1302762.332-526375.285总发行规模(股)-62901471.91833834382.072公开招股数量(股)86728576.31532945612.762发行前每股净资产(元)-7161439.711-1610453.395实际发行总量(股)100379250.82733935023.500每股发行费用(元)-2284877.141-2668329.679公司招股时注册资本(元)7960273.71831698332.872两种模型回归系数对比第一主成分的贡献率为0.469,前两个主成分的累计贡献率已经超过70%,表示选择两个主成分已经可以反映原始数据的大部分信息提取2个主成分后,可以直观感受数据的分布情况发行价格与总发行规模的不合理的系数得到了矫正主成分回归模型的测试集R方为0.748,与线性回归模型相比也略有提升6.3因子分析6.3.1因子分析基本概念6.3因子分析正交因子模型
各个公因子的方差为1且两两不相关特殊因子两两不相关公因子与特殊因子不相关正交因子模型的协方差结构:
6.3.1因子分析基本概念6.3因子分析正交因子模型
6.3.1因子分析基本概念6.3因子分析正交旋转
公因子的解释方差最大旋转
6.3.1因子分析基本概念6.3因子分析依据因子模型,可以对每一个样本计算公因子的估计值,这样得到的值称作因子得分在使用主成分分析法估计因子载荷矩阵的前提下,可以通过最小二乘法来估计因子得分,即极小化因子得分可以证明,该极小化问题的解为因子得分反映了数据的潜在结构,可以用作进一步分析的原始数据6.3.2因子分析案例实践因子分析IPO首日表现的因子分析必要库的导入fromfactor_analyzerimportFactorAnalyzer步骤1公因子个数的确定步骤2根据确定的公因子数重新拟合因子模型,输出因子载荷矩阵步骤3依据因子载荷矩阵,解释公因子含义#因子分析:确定公因子个数#因子模型拟合fa=FactorAnalyzer(rotation=None)fa.fit(data_scaled)#获取特征值eigenvalues=fa.get_eigenvalues()[0]#获取累计贡献率cvr=np.cumsum(eigenvalues/np.sum(eigenvalues))print(np.around(cvr,decimals=3))#进行因子分析fa=FactorAnalyzer(rotation='varimax',n_factors=3)fa.fit(data_scaled)#输出因子载荷矩阵feature_names=data.columnsloadings=pd.DataFrame(fa.loadings_,index=feature_names)print('因子载荷矩阵:')print(loadings)#计算因子得分factors_scores=fa.transform(data_scaled)第一公因子的贡献率为0.326,前两个公因子的累计贡献率为0.551,前3个公因子的累计贡献率为0.721,表示前3个公因子已经可以反映数据的大部分信息首日开盘价、首日收盘价在第一公因子上有较大的载荷,这些变量与“价格”相关,可以归纳为价格因子;首日交易股数、首日交易金额在第二公因子上有较大的载荷,这些变量与“交易规模”相关,可以归纳为规模因子;首日个股回报率、首日的市场回报率在第三公因子上有相对较大的载荷,可以归纳为回报率因子根据因子分析的结论,上市公司IPO首日表现可以从价格、交易规模、回报率3方面来度量6.3因子分析6.4K均值聚类6.4K均值聚类分类问题:明确知道需要被分成两类,且各个类别的含义是已知的、清晰的聚类问题:分为几类、各类有何特点事先并不清楚,需要从数据中发现与挖掘分类与聚类相关概念用于聚类的指标,如【案例6-1】中的首日开盘价、首日收盘价、首日的市场回报率等,称作聚类变量相应的聚类结果,比如最终将公司分成3类,我们应得到每个公司的类别标签,这样的结果称作聚类解聚类分析需要解决的问题聚类算法:依据何种策略进行类别划分,
K均值聚类、系统聚类、基于密度的带有噪声的空间聚类应用(Density-BasedSpatialClusteringofApplicationswithNoise,DBSCAN)等评价聚类效果外部度量法:通过聚类解与某种外部指标的一致性来评价聚类效果(不常用,主要用在新聚类算法的开发场景中)内部度量法:根据聚类解自身来设计度量指标(如轮廓系数(SilhouetteCoefficient)法)6.4K均值聚类
轮廓系数(SilhouetteCoefficient)法
整体的轮廓系数定义为该值越接近1,说明聚类效果越好,该值越接近-1,说明聚类效果越差。6.4K均值聚类6.4.1K均值聚类的基本原理聚类数目K的确定聚类数目不宜过大,也不宜过小,需要平衡数据的聚类结构和对聚类结果的解释性常见的做法是在一定数值范围内尝试不同的聚类数目,然后选择使聚类解的性能指标(例如轮廓系数)达到较优的聚类数目迭代进程的控制可以通过迭代次数或两次迭代间质心的偏移程度来控制迭代进程例如,设置1000次迭代后终止进程,或者设置两次迭代质心的偏移程度小于给定阈值时终止进程。各个类别所包含样本点的平均值质心获取聚类解后,建议从以下3个方面解读聚类结果。对聚类标签进行解读:哪些样本属于哪个类别,了解样本之间的亲疏关系对质心进行解读:分析不同类别质心的差异,有助于深入理解各个类的特征对聚类效果进行解读:计算聚类效果评价指标,或将聚类结果进行可视化呈现,直观地呈现聚类的效果6.4K均值聚类6.4.2K均值聚类案例实践IPO首日表现的K均值聚类分析必要库的导入fromsklearn.clusterimportKMeansfromsklearn.metricsimportsilhouette_score步骤1确定聚类数目K#确定聚类数目silhouette_scores=[]forn_clustersinrange(3,11):kmeans=KMeans(n_clusters=n_clusters,n_init=10)cluster_labels=kmeans.fit_predict(data_scaled)silhouette_avg=silhouette_score(data_scaled,cluster_labels)silhouette_scores.append(silhouette_avg)#绘制轮廓系数随聚类数目变化的折线图plt.plot(range(3,11),silhouette_scores,marker='o')plt.xlabel('K')plt.ylabel('轮廓系数')plt.show()当K取3时,轮廓系数最大,由此确定聚类数目为36.4K均值聚类6.4.2K均值聚类案例实践IPO首日表现的K均值聚类分析步骤2执行K均值聚类,输出聚类标签与质心#执行K均值聚类kmeans=KMeans(n_clusters=3,random_state=123,n_init=10,init='k-means++')cluster_labels=kmeans.fit_predict(data_scaled)cluster_centers=kmeans.cluster_centers_#将聚类中心转化为DataFramecluster_centers_df=pd.DataFrame(cluster_centers,columns=data.columns)cluster_centers_df.index=['类别0','类别1','类别2']print(cluster_centers_df)cluster_counts=pd.Series(cluster_labels).value_counts().reset_index()print(cluster_counts)6.4K均值聚类6.4.2K均值聚类案例实践IPO首日表现的K均值聚类分析步骤3绘制聚类效果图,解读聚类结果#提取主成分pca=PCA(n_components=2)data_pca=pca.fit_transform(data_scaled)#绘制聚类效果图#定义不同形状markers=['o','^','s']#绘制散点图fori,markerinzip(range(len(markers)),markers):plt.scatter(data_pca[cluster_labels==i,0],data_pca[cluster_labels==i,1],marker=marker,label=f'类别{i}',edgec
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版国际航运船舶运输代理服务合同范本
- 2025版共享家居服务平台工作人员聘用合同范本
- 二零二五年度房屋抵押担保生态旅游开发合同
- 二零二五年电梯安装与智慧社区建设委托协议
- 二零二五年度高品质住宅供水系统安装施工合同
- 2025年度海鲜市场品牌连锁加盟经营合同
- 2025第一部互联网医疗咨询服务合同协议书
- 二零二五年度农产品绿色通道公路货物运输合同示范文本
- 股权抵押融资项目合作协议书
- 活动承办代理合同书(2025版)
- 投资合作协议及投资细则说明
- 2025广西公需科目考试答案(3套涵盖95-试题)一区两地一园一通道建设人工智能时代的机遇与挑战
- 2025年金华市警示教育基地管理中心选调考试笔试试题
- 2025年全国应急管理普法知识竞赛测试试卷(含答案)
- 2025年7月浙江省普通高中学业水平考试数学试卷(含答案)
- 教师招聘教育学试题及答案
- 2025至2030中国自我血糖监测系统行业市场深度研究及发展前景投资可行性分析报告
- 2025年初中音乐教师招聘考试试卷 及答案
- 2025至2030中国电子工业洁净工程行业发展现状及市场格局与投资风险预测报告
- 2025年初中英语课程标准考试模拟试卷及答案(共三套)
- 《税法》经管类专业全套教学课件
评论
0/150
提交评论