根据股票涨跌用KMeans进行分类

今早刚得到一份2890支股票2013年9月30日至今的交易数据,数据量还行,共有170m左右。趁着热乎劲,想做一些分析。分析思路很简单,就是通过股票的涨跌情况,进行聚类分析。看看哪些股票种类是相似的,对于一些异常的股票,可以进一步挖掘分析。这里用到的算法是KMeans。KMeans的原理很简单,这里就不详述了,不清楚的同学请使劲戳这里KMeans主要的参数主要有这几个:k(中心点的个数),iter(
摘要由CSDN通过智能技术生成

今早刚得到一份2890支股票2013年9月30日至今的交易数据,数据量还行,共有170m左右。趁着热乎劲,想做一些分析。

分析思路很简单,就是通过股票的涨跌情况,进行聚类分析。看看哪些股票种类是相似的,对于一些异常的股票,可以进一步挖掘分析。这里用到的算法是KMeans。

KMeans的原理很简单,这里就不详述了,不清楚的同学请使劲戳这里

KMeans主要的参数主要有这几个:k(中心点的个数),iter(迭代次数,也就是选择中心点的次数),thresh(算法在计算时变化的值域,如果小于或等于thresh,则停止迭代,这个可设可不设。)

在pyhon的scipy模块里面,KMeans方法返回的值是一些重心点,之后需要再用vq根据这些重心点来进行分类。
原文解释在这里,本人英语还在学习当中,就不在这里翻译出洋相了:

vq(obs, code_book[, check_finite])  Assign codes from a code book to observations.
kmeans(obs, k_or_guess[, iter, thresh, ...])    Performs k-means on a set of observation vectors forming k clusters.

原理清楚之后就可以直接上代码啦:

# -*- coding: utf-8 -*-
"""
Created on Wed Sep 28 11:36:29 2016
@author: Sunnyin
"""

import numpy as np
import pandas as pd
from scipy.cluster.vq import kmeans,vq
import os,copy

os.chdir('E:\\PythonWorkSpace\\data\\data\\data')
path = 'E:\\PythonWorkSpace\\data\\data\\data'

for root,dirs,files in os.walk(path):
    fileNames = files

fileNum = np.random.random_integers(2890,size = 100)
useFiles = []
for i in fileNum:
    useFiles.append(fileNames[i])

stocks = []
change = []
useFileTrue = copy.deepcopy(useFiles)
stocksName = {}
for index in range(len(useFiles)):
    info = pd.read_csv(useFiles[index])
    if len(info) > 100:
        stocks.append(info.close.values[:100])
    
  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值