样本:

代码:有几处与教程不同,自行修改

  1. import pandas as pd
  2. import numpy as np
  3. from sklearn import svm
  4. from sklearn import model_selection #此处与教程不同,模块更改
  5.  
  6. #1.读取数据,此处不添加 index_col=0 因为会没有最左边的0,1,2,3那一列,导致后续ix换col索引出现问题
  7. data = pd.read_csv('D:\python_source\Machine_study\mooc_data\classification\stock/000777.csv', encoding='gbk', parse_dates=[0])
  8. data.sort_index(0, ascending=True, inplace=True) #按索引列(第一列,日期)升排序
  9.  
  10. #2.数据预处理
  11. #选取5列数据作为特征:收盘价,最高价,最低价,开盘价,成交量
  12. dayfeature = 150 #选取150天的数据量
  13. featurenum = 5 * dayfeature
  14. '''
  15. data.shape[0] - day.feature意思为要用150天数据做训练,对于条目为200条的数据,只有50条数据
  16. 是有前150天的数据来训练的,使用训练集的大小就是200-150,对于每一条数据,它阿特征是前150天的所有特征数据,即150*5,
  17. +1是将当天的开盘价引入作为一条特征数据
  18. '''
  19. x = np.zeros((data.shape[0] - dayfeature, featurenum + 1)) #记录150天的5个特征值
  20. y = np.zeros((data.shape[0]-dayfeature)) #记录涨或者跌
  21.  
  22. for i in range(0, data.shape[0]-dayfeature):
  23. #将数据中的收盘价,最高价1,开盘价,成交量存入 x数组中
  24. x[i, 0:featurenum] = np.array(data[i:i+dayfeature]\
  25. [[u'收盘价', u'最高价', u'最低价',u'开盘价', u'成交'
  26. u'量']]).reshape((1, featurenum))
  27. x[i, featurenum] = data.loc[i+dayfeature]['开盘价'] #最后一列记录当日开盘价 此处ix已被弃用
  28. #1代表涨,0代表跌
  29. for i in range(0, data.shape[0]-dayfeature):
  30. if data.loc[i+dayfeature]['收盘价']>=data.loc[i+dayfeature]['开盘价']:
  31. y[i] = 1
  32. else:
  33. y[i] = 0
  34.  
  35. #3.创建SVM并进行交叉验证
  36. clf = svm.SVC(kernel='rbf', gamma='scale') #调用函数,参数默认为rbf,其他:linear,poly,sigmoid
  37. result = []
  38. for i in range(5):
  39. x_train, x_test, y_train, y_test = model_selection.train_test_split(x, y, test_size=0.2)
  40. #x和y的验证集和测试集,切分80-20%的测试集
  41. clf.fit(x_train, y_train)
  42. #训练数据进行训练
  43. result.append(np.mean(y_test == clf.predict((x_test))))
  44. #预测数据和测试集的验证数据进行比对
  45. print("svm classifier accuacy:")
  46. print(result)

结果:

2019-08-02【机器学习】有监督学习之分类 SVC算法 实例(上证指数跌涨预测)的更多相关文章

  1. 吴裕雄 python 机器学习——支持向量机SVM非线性分类SVC模型

    import numpy as np import matplotlib.pyplot as plt from sklearn import datasets, linear_model,svm fr ...

  2. 2019.08.02 云从科技C++后台开发

    公司坐标:重庆 岗位:C++后台开发 面试时长:45分钟 主要问题记录: (1)手写代码 冒泡算法的实现: /**   * 冒泡排序:C++   *   * @author skywang   * @ ...

  3. 【纪中集训】2019.08.02【NOIP提高组】模拟 A 组TJ

    \(\newcommand{\RNum}[1]{\uppercase\expandafter{\romannumeral #1\relax}}\) T1 一道可以暴力撵标算的题-- Descripti ...

  4. 2019-07-25【机器学习】无监督学习之聚类 K-Means算法实例 (1999年中国居民消费城市分类)

    样本 北京,2959.19,730.79,749.41,513.34,467.87,1141.82,478.42,457.64天津,2459.77,495.47,697.33,302.87,284.1 ...

  5. 机器学习--最邻近规则分类KNN算法

    理论学习: 3. 算法详述        3.1 步骤:      为了判断未知实例的类别,以所有已知类别的实例作为参照      选择参数K      计算未知实例与所有已知实例的距离      选 ...

  6. 2019-07-31【机器学习】无监督学习之聚类 K-Means算法实例 (图像分割)

    样本: 代码: import numpy as np import PIL.Image as image from sklearn.cluster import KMeans def loadData ...

  7. 2019-07-31【机器学习】无监督学习之降维PCA算法实例 (鸢尾花)

    样本 代码: import matplotlib.pyplot as plt from sklearn.decomposition import PCA from sklearn.datasets i ...

  8. 【Todo】【转载】Spark学习 & 机器学习(实战部分)-监督学习、分类与回归

    理论原理部分可以看这一篇:http://www.cnblogs.com/charlesblc/p/6109551.html 这里是实战部分.参考了 http://www.cnblogs.com/shi ...

  9. 02机器学习实战之K近邻算法

    第2章 k-近邻算法 KNN 概述 k-近邻(kNN, k-NearestNeighbor)算法是一种基本分类与回归方法,我们这里只讨论分类问题中的 k-近邻算法. 一句话总结:近朱者赤近墨者黑! k ...

随机推荐

  1. 深夜,我用python爬取了整个斗图网站,不服来斗

    QQ.微信斗图总是斗不过,索性直接来爬斗图网,我有整个网站的图,不服来斗. 废话不多说,选取的网站为斗图啦,我们先简单来看一下网站的结构 网页信息 从上面这张图我们可以看出,一页有多套图,这个时候我们 ...

  2. Spring WebFlux 入门

    1. WebFlux介绍 Spring WebFlux 是 Spring Framework 5.0中引入的新的响应式web框架.与Spring MVC不同,它不需要Servlet API,是完全异步 ...

  3. SqlBulkCopy批量插入数据 显示 来自数据源的 String 类型的给定值不能转换为指定目标列的类型 smalldatetime。错误

    因为需要大量插入数据,linq ef无法达到速度的要求,因此把模型转换成SQL ,使用SqlBulkCopy快速插入.但是去提示 来自数据源的 String 类型的给定值不能转换为指定目标列的类型 s ...

  4. [尊老爱幼] Queen

    You are given a rooted tree with vertices numerated from 1 to n . A tree is a connected graph withou ...

  5. windows常用系统命令

    dir指定要列出的驱动器.目录和/或文件 显示当前路径下的所有文件的绝对路径,包含子文件夹中的内容 dir /b / s /o:n /a:a /b 表示去除摘要信息,且顶格显示完整路径 /s 表示枚举 ...

  6. GB2312,GBK和UTF-8的区别

    GBK GBK包含全部中文字符, GBK的文字编码是双字节来表示的,即不论中.英文字符均使用双字节来表示,只不过为区分中文,将其最高位都定成1.至于UTF-8编码则是用以解决国际上字符的一种多字节编码 ...

  7. 命令行中运行Java字节码文件提示找不到或无法加载主类的问题

    测试类在命令行操作,编译通过,运行时,提示 错误: 找不到或无法加载主类 java类 package com.company.schoolExercise; public class test7_3_ ...

  8. spring-cloud-gateway静态路由

    为什么引入 API 网关 使用 API 网关后的优点如下: 易于监控.可以在网关收集监控数据并将其推送到外部系统进行分析. 易于认证.可以在网关上进行认证,然后再将请求转发到后端的微服务,而无须在每个 ...

  9. Jmeter 中 Bean Shell 之全局变量

    1.新建测试计划>线程组 > http 请求 -登录 获取token , 可以参照我以前写的这篇博客 https://www.cnblogs.com/cyit/p/12632445.htm ...

  10. mongodb的更新语句

    MongoDB 使用 update() 和 save() 方法来更新集合中的文档: update()方法: update() 方法用于更新已存在的文档.语法格式如下: db.collection.up ...