公司举办编程大赛,想到最近股票跌宕起伏,然后无心睡眠,所以跟我叔叔聊聊股市,叔叔操盘经常是选择A股票后,会购买B这只股票,但是A跟B之间单单从业务角度和股权分配都没有任何关系,至少从表面上是这么让人觉得。后来遵从他的劝解,我选择A\B两股,但是万万没想到的是跌得我想死,漫漫长夜,无心睡眠,起来骗点钱,看了些论文,着手把实现完成,主要使用到动态规划、排序和K-means算法结合下,进行归类那些不靠谱的股票,纪念下我那损失的万把块钱。(确切地说,损失非常严重,悟出一个真理中国股市没有任何依据可言),参考的论文是国外的课题,在附件中请查收(英文)
基于K-Means算法,探索股票趋势的数据可视化
采用欧氏距离
数据采样
股票号码、每天的股价(统计一周的股价情况)
数据集进行[0,1]规格化
K-Means算法进行聚类算法
输出结果
ID NAME VALUE
股票号码、股票名称、股票增值幅度
SOURCE TARGET VALUE
非K股票 K的股票 关联幅度
工作日 | 周一 | 周二 | 周三 | 周四 | 周五 | |
股票代码 | ||||||
工大高新 | 600701 | 10 | 16 | 23 | 1 | 60 |
江苏有线 | 600959 | 22 | 33 | 44 | 6 | 50 |
青岛碱业 | 600229 | 33 | 2 | 5 | 7 | 51 |
物产中大 | 600704 | 4 | 34 | 33 | 45 | 53 |
维科精华 | 600152 | 23 | 41 | 12 | 32 | 53 |
信雅达 | 600571 | 45 | 4 | 22 | 23 | 53 |
600119 | 4 | 2 | 10 | 4 | 4 | |
603703 | 5 | 32 | 11 | 13 | 13 | |
600446 | 6 | 33 | 32 | 13 | 50 | |
603128 | 23 | 32 | 4 | 33 | 14 | |
600833 | 12 | 12 | 6 | 22 | 23 | |
恒生电子 | 600570 | 13 | 13 | 8 | 33 | 12 |
600647 | 7 | 32 | 23 | 1 | 42 | |
601519 | 8 | 14 | 45 | 2 | 9 | |
600789 | 12 | 15 | 33 | 13 | 4 | |
601106 | 31 | 42 | 12 | 45 | 22 |
其实这几种算法没啥新意,个人感觉比较好玩的是数据的可视化,这里使用到浙大竺可桢学院数据可视化的同学们提供的组件,非常佩服他们。http://datavlab.org/
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>k-means股票数据可视化</title> <script src="../deps/compatible.js"></script> <script type="text/javascript" src="../deps/d3.min.js"></script> <script type="text/javascript" src="../deps/d3.layout.min.js"></script> <script type="text/javascript" src="../deps/d3.geom.min.js"></script> <script type="text/javascript" src="../deps/d3.csv.js"></script> <script src="../deps/raphael.min.js"></script> <!-- force --> <script type="text/javascript" src="../deps/seajs/sea.js"></script> <script type="text/javascript"> var dir = window.location.href.replace(/\\/g,'/').replace(/\/[^\/]*$/, ''); seajs.config({ alias: { 'datav': dir + '/../datav.js', 'force': dir + '/../libs/force.js' } }); </script> <STYLE type="text/css"> #chart { border-top: 1px dashed #F00; border-bottom: 1px dashed #F00; padding-left: 20px; } .textArea { border: 2px solid black; color: black; font-family: monospace; height: 3in; overflow: auto; padding: 0.5em; width: 750px; } </STYLE> </head> <body> <div class="body"> <h1 id="forcedirected_graph">基于K-Means股票关联的数据可视化</h1> <div class="gallery" id="chart"></div> </div> <script type="text/javascript"> seajs.use(["force", "datav"], function (Force, DataV) { // DataV.changeTheme("datav"); var net = new Force("chart", { width: 800, height: 600, tag: true }); DataV.csv("test3.csv", function (source) { net.setSource(source); net.render(); }); }); </script> </body> </html>
相关推荐
K-Means算法是机器学习领域中广泛应用的一种无监督学习方法,主要用于数据的聚类分析。这个算法的主要目标是将数据集分割成K个不同的类别(或簇),使得每个簇内的数据点彼此相似,而不同簇之间的数据点差异较大。...
基于 K-means 算法的校园微博热点话题发现系统 一、研究目的 微博由其 “短平快 ” 的信息能力和快速传播能力 ,已广泛流行于高校学生的常生活中。但微博上的负面舆情信息给社会 、学校和个人带来巨大的危害 。由于...
总之,基于K-means算法的遥感图像分类在Matlab中的实现涉及数据预处理、K-means算法的调用以及结果可视化等多个环节。通过理解K-means的工作原理并熟练运用Matlab的工具,我们可以有效地对遥感图像进行自动化分类,...
Java K-Means 可视化程序是一种基于Java编程语言实现的数据分析工具,主要用于执行聚类算法中的K-Means方法,并将结果以图形化的形式展示出来。K-Means是一种广泛应用的无监督学习算法,用于将数据集分成不同的簇...
K-Means算法是机器学习领域中一种广泛应用的无监督聚类方法,它主要用于将数据集中的样本点划分到不同的类别或簇中。在模式识别中,K-Means算法常用于对未知分类的数据进行自动分组,以便于后续分析和理解。Matlab...
Python作为一门强大的编程语言,因其简洁的语法和丰富的科学计算库,成为实现K-Means算法的理想选择。 在Python中,我们通常使用`scikit-learn`库来实现K-Means算法。`scikit-learn`是Python中最重要的机器学习库之...
总之,这个Java实现的K-Means算法提供了数据挖掘中的聚类分析能力,结合可视化功能,使得用户能够更加直观地理解和应用这一经典算法。对于学习数据挖掘和机器学习的开发者来说,这是一个很好的实践项目,可以帮助...
在这个项目中,提供的Python代码可能是使用pandas库进行数据预处理,numpy进行数学计算,matplotlib和seaborn用于数据可视化,以及sklearn库中的KMeans类实现K-means算法。如果你不想更改代码中的文件路径,可以直接...
在Matlab中实现和调试k-means算法,可以利用其强大的数学计算和可视化功能,便于快速验证算法效果和优化参数。此外,对于三维数据,通过可视化结果,我们可以直观地看到不同类别的分布情况,这对于理解数据的内在...
为了可视化结果,可以将同一簇内的数字图像放在一起展示,或者绘制二维散点图,用不同颜色表示不同的簇。 最后,评估模型性能的一个常见方法是对测试集进行预测,并计算准确率。在K-Means中,由于它是一种无监督...
标题“基于 K-means 聚类算法的图像区域分割”揭示了这是一个关于利用K-means算法处理图像处理问题的项目。K-means聚类是一种常见的无监督学习方法,用于将数据集划分为K个互不重叠的类别,每个类别由其内部数据点的...
任务的目标是通过K-Means算法自动将数据集划分为不同的簇,并评估算法的性能。 #### 二、设计要求 - **输入**: 聚类个数\( k \),以及包含\( n \)个数据对象的数据集。 - **输出**: 满足方差最小标准的\( k \)个...
K-means算法是一种广泛应用的数据挖掘技术,主要用于无监督学习中的聚类分析。它通过将数据集中的样本点分配到最近的聚类中心,不断迭代优化聚类结果,最终形成K个簇。在这个过程中,K值是预先设定的,代表希望得到...
MATLAB是一种非常适合于科学计算、数据分析和可视化编程的语言,下面我们将通过MATLAB代码来进一步理解K-means算法的具体实现: ##### 1. 一维样本分类 代码示例中,我们看到首先定义了一个样本集`samp`,然后通过...
在压缩包文件"Cluster"中,可能包含着实现这两种算法的代码示例、数据集以及聚类结果的可视化文件。通过对这些文件的分析,可以深入了解ISODATA和K-means的具体实现过程,以及如何评估和比较这两种算法的性能。例如...
在Matlab环境中实现K-means算法,可以高效地处理大量数据,并进行可视化分析。 1. **K-means算法的基本步骤**: - 初始化:选择K个初始质心(cluster centers),通常随机选取数据集中的一部分样本点。 - 分配:...
2. **准确性**:通过可视化聚类结果并对比实际类别(如果有),看哪种算法更能捕捉数据的内在结构。 3. **鲁棒性**:改变初始设置,如k-means的初始中心,或者DP-means的参数,查看算法的稳定性。 4. **适用性**:...
首先,K-Means算法的基本思想是通过迭代寻找最优的K个聚类中心,使得每个数据点到其所属簇中心的距离最小。这个过程包括两个主要步骤:初始化聚类中心和重新分配数据点。 1. 初始化聚类中心:通常选择数据集中的K个...
最后,将预处理后的文本数据输入到我们实现的K-means算法中,观察聚类结果,可能需要通过可视化工具(如matplotlib或Gephi)展示类别分布。 通过这个实验,我们可以学习到如何将机器学习算法应用于实际文本数据,...