本文SPSSAU上的分析结果

本文notebok下载

根据软件板块数据,考虑类别时可以使用kmeans等分类算法,而不考虑分类则可以使用pca类算法查看主要成分。本次项目涉及到下图中的两个板块,下次文章再去涉及下图其他两个板块。

PCA算法实践与主成分个数选择

主成分分析之前查看相关性,剔除相关性高的项,可以提高主成分分析有效性。本数据中多重共线性不严重,不用剔除数据。

数据应用于算法前先做缺失值和标准化处理。准备好pipeline:

将数据预处理pipeline应用于数据。为了选择出pca合适的主成分个数,通过循环和储存来记录主成分个数选择参数不同pca的方差解释率变化情况。如果用GridSearchCV需要自定义metrics,用make_scorer函数。

class_n=range(10)
explained=[]
explained_ratio=[]x_std=numeric_pipeline.fit_transform(x)
for i in class_n:pca=PCA(i)x_copy=pca.fit_transform(x_std)explained.append(sum(pca.explained_variance_))explained_ratio.append(sum(pca.explained_variance_ratio_))

碎石图用于辅助判断主成分提取个数,当拆线由陡峭突然变得平稳时,陡峭到平稳对应的主成分个数即为参考提取主成分个数。碎石图仅辅助决策主成分个数,实际研究中更多以专业知识,结合主成分与研究项对应关系情况,综合权衡判断得出主成分个数。

通过当期数据减前一期数据r-r.shift(1)得到解释率的变化量,充当起判断作用的“碎石图”。一般会选择方差解释率10%以上的主成分。所以据上图,本次主成分分析应该4个成分。

与SPSSSAU结果对比,不相上下。不需要要求结果与spssau严格一致,spssau与spss结果也不一样。 下图是SPSSAU上的结果。

不过从图中可以看到,方差解释率变化平缓,这位主成分个数的选择带来一定困扰,这是因为本项目数据本身对做主成分分析不友好。之所以这样讲,是因为用SPSSAU软件先做主成分分析发现KMO值低于0.6,虽然Bartlett 球形度检验p值小于0.05,总之,数据不是适合主成分分析的。

spssau还提供了载荷系数表格方便命名主成分和查看主成分提取了各个特征多少解释率。成份得分系数矩阵能用于权重计算。

kmeans算法实践与聚类个数选择的3种方法

聚类个数确定方法一:EIbow Method

思想:位于该类的数据点到该类中点的距离的SSE(sum of squared diatance)尽可能的小。

x_std=numeric_pipeline.fit_transform(x)sse=[]
for i in range(1,10):classifier = KMeans(n_clusters=i)classifier.fit(x_std)sse.append(classifier.inertia_)

从上图可以看出,要想很明确指出该聚几个类是很困难的,这是主成分分析原因类似,这是数据本身不太适合聚类,类别特征不明显,目测3个类。

聚类个数确定方法二:Silhouette Analysis

score在【-1,1】区间,越靠近1越好,越接近-1就越差,一般大于0.5为佳。下图显示该聚2个类,这和方法一中图片显示类似,都是比较模糊的。

聚类个数确定方法三:用umap可视化聚类效果。

pip install umap-learn

为什么是umap?因为tSNE速度太慢了,它还有其他好处。umap自2018年发布以来,深受用户喜爱。

我们看到umap已经把数据可视化到2维平面了。接下来把我们聚类好的标签传给图片,就能看到聚类效果了。

仍然是前面使用的KMeans模型 ,nc作为聚类个数参数,我们把labels和labels的count打印出来,如上图。接下来手动调节nc参数,查看聚类可视化效果,就可以选择合适的聚类个数了。

从umap可视化结果来看,选择聚类个数4比较合适。

所以很不幸,三种聚类个数选择方法得到结果为2,3,4,没有相同之处。 回顾第一张图,就是sklearn官方标志的那张。当kmeans not working的时候,就可以用spectral clustering或则GMM,pca同理,这一部分下一篇文章再写吧。

附录

pca

 注释掉的x_std放开后就是经过主成分分析后的数据做kmeans。我测试后发现和不做pca的数据会出来的图一模一样。

scikit-learn机器学习分析股票板块数据(KMeans,PCA,参数选择)相关推荐

  1. 利用机器学习分析脑电数据(原理分析+示例代码+快速上手)

    由于本人对于脑机接口以及脑电技术的极度爱好(其实目的是:是把U盘插到大脑里,然后就不用学习了哈哈哈哈),近几月看了较多这方面的内容,变打算写下博客总结分析一下. 目录 一.  机器学习分析简介 二.机 ...

  2. 分析股票大数据_Python大数据分析量学祖师爷网站数据

    本文通过Python抓取股海明灯涨停预报数据进行分析,股海明灯网站涨停预报数据跟踪 功能是需要VIP权限,但这个权限分析数据的功能有限,我们抓取数据后丰富相关功能. 一. 点击涨停预报后打开以下页面. ...

  3. [逐笔数据分析工具分享]如何分析股票逐笔数据

    工具分享链接:https://pan.baidu.com/s/1fbDoPM2NzSBEn31gDBZnpQ 提取码:v0sm ​1. 配置stocklist.txt和datelist.txt sto ...

  4. 网络爬虫之东方财富网股票板块

    本文为原创博客,仅供技术学习使用.未经允许,禁止将其复制下来上传到百度文库等平台.如有转载请注明本文博客的地址(链接). 源码或者jar包如有需要请联系:2428607276@qq.com 要抓取的数 ...

  5. 如果通过股价均线分析股票

    目录 如果通过股价均线分析股票 获取数据 为什么要计算均价 计算均价 分析结果 如果通过股价均线分析股票 获取数据 股票数据获取渠道非常丰富,可以通过上一篇文章 各大股票开放接口介绍中接口获取数据,需 ...

  6. python数据预测模型算法_基于机器学习的股票分析与预测模型研究

    摘 要:近年来,随着全球经济与股市的快速发展,股票投资成为人们最常用的理财方式之一.本文研究的主要目标是利用机器学习技术,应用Python编程语言构建股票预测模型,对我国股票市场进行分析与预测.采用S ...

  7. 数据分析实战:python热门音乐分析 附代码+数据 +论文(PCA 主成分分析,sklearn 机器学习,pytorch 神经网络,k-means 聚类,Librosa 音频处理,midi 音序)

    项目概述: 本选取了抖音当下最热门的 400 首音乐,通过一系列方法提取每首歌的波形特征,再经过降维以及机器学习等手段,进行无监督学习对音乐数据进行聚类的同时训练并使用监督学习分类器进行音乐流派分类, ...

  8. [转载]Scikit Learn: 在python中机器学习

    原址:http://my.oschina.net/u/175377/blog/84420 目录[-] Scikit Learn: 在python中机器学习 载入示例数据 一个改变数据集大小的示例:数码 ...

  9. Scikit Learn: 在python中机器学习

    Warning 警告:有些没能理解的句子,我以自己的理解意译. 翻译自:Scikit Learn:Machine Learning in Python 作者: Fabian Pedregosa, Ga ...

最新文章

  1. 相机自动对焦AF原理
  2. 百度map-api-视图
  3. 表示python代码块的是_编写高质量Python代码的59个有效方法,你用过几个
  4. UI组件之AdapterView及其子类(五)ListView组件和ListActivity
  5. 3.产品成本在完工和在制产品间分配
  6. 当你一无所有的时候,是学习最好的状态
  7. android快捷开发之Retrofit网络加载框架的简单使用
  8. 独家分享| 2019年校招大厂算法自己经历和好友经验(大疆,百度,腾讯……)
  9. HTML渐变背景不重复,如何停止重复自身的背景颜色渐变? (css)
  10. blfs(systemd版本)学习笔记-编译安装openssh软件包
  11. c++ 使用nacos_超赞!用阿里开源的Nacos做SpringCloud注册中心真贴心...
  12. Kali Linux桥接模式配置DNS服务器
  13. 区块链 常用词汇定义
  14. Angular.js(出库列表页)
  15. cp 命令覆盖文件夹和文件
  16. adb通过局域网连接手机
  17. 百寸大屏搭配高清画质,极米NEW Z6X轻松打造沉浸式家庭影院
  18. 设置Hi提醒实现机器人盯盘|自动监测股票价格达到条件推送消息通知
  19. 求助!神舟笔记本BIOS进不去!
  20. Python - Flask 图片验证码和邮箱验证码的后端实现

热门文章

  1. 台州学院第七届“星峰杯”大学生程序设计竞赛
  2. raspberry pi_前5名:轻量级电子邮件客户端,教育方面的Raspberry Pi,网络中立性等等
  3. 推箱子游戏C++实现原理
  4. Sybase通过游标+行锁进行多线程下的ID采番
  5. Going Home HDU - 1533
  6. HealthKit 框架体系
  7. python读取hdf-eos5数据_python读取与写入csv EXCEK HDF 文件
  8. 10个常见软件架构模式和三层架构模式
  9. SAP-ABAP-FBL1H/FBL3H/FBL5H/FAGLL03H等事务代码远程调用时ALV展示与标准不同时布局问题增强修改
  10. request和response基础知识总结