读取基金数据,然后画线

# coding: utf-8
import pandas as  pd
import matplotlib.pyplot as plt# 读取csv文件里的基金数据
fund = pd.read_csv("./csv/001112.csv", dtype={"fcode":str})
fund['fdate'] = pd.to_datetime(fund['fdate']) # 把fdate列 转换成pandas里的日期格式
fund = fund.set_index("fdate").sort_index(ascending=False) # 设置fdate列为索引列,然后排序# 把基金净值增值趋势用matplotlib包画出来
x = fund.loc['2017'].index
y = fund.loc['2017']['NAV']plt.plot(x, y)
plt.show()

机器学习 ☞ 预测篇

我们先来学习预测算法中最基本的线性回归

首先我们来画一条直线

a,b = 3,5   # 随便定义的2个数字
x = np.arange(1,100)
y = a*x + 5
plt.plot(x,y)
plt.show()

可以看出,我们直线的方程是:y = 3x + 5
在数学中a就是直线的斜率,b就是截距。

超牛的机器学习包:sklearn

官网:
http://scikit-learn.org/stable/install.html
这个包,有很多机器学习的算法。如回归、贝叶斯、决策树等。

1、安装

cd到你项目虚拟环境的bin目录下
执行
./python3 -m pip install -U scikit-learn  -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

因为安装这个包比较慢,我们上面使用了阿里云的镜像。
同时还要安装一个包scipy,这是高级科学计算包。

./python3 -m pip install -U scipy

2、利用sklearn来完成一元线性回归的测试

API地址:
http://scikit-learn.org/stable/modules/classes.html#module-sklearn.linear_model

#引入包
from sklearn.linear_model import LinearRegression

“LinearRegression”就是“线性回归”的意思。当我们的数据通过肉眼看 具备了线性条件时,它就能用上了。

http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html#sklearn.linear_model.LinearRegression

# coding: utf-8
import numpy as np
import pandas as  pd
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression# 读取csv文件里的基金数据
fund = pd.read_csv("./csv/001112.csv", dtype={"fcode":str})
fund['fdate'] = pd.to_datetime(fund['fdate']) # 把fdate列 转换成pandas里的日期格式
fund = fund.set_index("fdate").sort_index(ascending=False) # 设置fdate列为索引列,然后排序# 把基金净值增值趋势用matplotlib包画出来
x_date = fund.loc['2017'].index
x_int64 = x_date.astype(np.int64) # 把date类型转换成int64类型
y = fund.loc['2017']['NAV']
plt.plot(x_date,y) # 画原始数据的线# 创建线性回归对象
lr = LinearRegression()
x = x_int64.values.reshape(-1,1) # 把日期 变成二维数组的形式
y = y.values.reshape(-1,1) # 同样把Y轴的值 变成二维数组的形式
lr.fit(x,y) # 对x轴和y轴进行修正(训练)# 把原始的x和y进行fix()后,就可以开始预测
testX = pd.to_datetime(np.array(["2017-09-29","2017-09-30"])).astype(np.int64).values.reshape(-1,1)
newY = lr.predict(testX)
print(newY) # 预测29号 30号的Y轴的值
"""
[[ 1.41340871][ 1.41483561]]
"""# 画出 预测的线
# x轴和原始数据一样
# y轴的值需要经过预测
plt.plot(x_date,lr.predict(x_int64.values.reshape(-1,1)),"red")# 最后显示出画的线
plt.show()

红色的线就是sklearn 预测出来的。

上面代码中的 部分测试代码:

# 把原始的x和y进行fix()后,就可以开始预测
testX = pd.to_datetime(np.array(["2017-09-29","2017-09-30"])).astype(np.int64).values.reshape(-1,1)
newY = lr.predict(testX)
print(newY) # 预测29号 30号的Y轴的值
"""
[[ 1.41340871][ 1.41483561]]
"""

这部分代码只是为了演示LinearRegression 是预测能力。

机器学习入门:入手sklearn框架+线性回归+案例(基金数据的预测)相关推荐

  1. python线性回归分析看相关性_机器学习入门-相关分析之简单线性回归

    一.什么是机器学习? 简单来说,机器学习是一类算法的总称,这些算法企图从大量历史数据中挖掘出其中隐含的规律,并用于预测或者分类,更具体的说,机器学习可以看作是寻找一个函数,输入是样本数据,输出是期望的 ...

  2. [机器学习-回归算法]Sklearn之线性回归实战

    Sklearn之线性回归实战 一,前言 二,热身例子 三,贸易公司的简单例子 四,Sklearn 官网里的一个例子 五,预测每月的地铁故障数 参考资料 一,前言 一元线性回归的理论片请看我这个链接 二 ...

  3. 【机器学习】:sklearn逻辑回归案例分析 《良/恶性乳腺癌肿瘤预测》

    由于对逻辑回归等算法做到深刻理解有点难,目前还在学习中,尽管有现成的模型库,我们还是需要对模型的底层实现有一个了解.这里先记录一下如何利用sklearn的LogisticRegression来做一个简 ...

  4. 机器学习入门2--回归之线性回归及梯度下降

    本系列博客基于温州大学黄海广博士的机器学习课程的笔记,小伙伴们想更详细学习黄博士课程请移步到黄博士的Github.或者机器学习初学者公众号,现在在中国慕课也是可以学习的,内容包括机器学习.深度学习及P ...

  5. Python机器学习入门1.1《良、恶性乳腺肿瘤预测》

    本教程实用于0基础从事机器学习的人,OK,我们主要是用Python实现机器学习的,所以,你应该花三天时间去看看Python,然后我会有清晰的步骤与每个步骤错误提示,如果你还有什么问题,可以回复我. 这 ...

  6. python 线性回归回归 缺失值 忽略_python – 使用scikit-learn(sklearn),如何处理线性回归的缺失数据?...

    我的数据包含2个DataFrame. DataFrame_1.shape =(40,5000)和DataFrame_2.shape =(40,74).我正在尝试进行某种类型的线性回归,但DataFra ...

  7. 机器学习入门(17)— 输入 4 维数据、基于 im2col 展开来实现卷积层

    1. 输入 4 维数据 CNN 中各层间传递的数据是 4 维数据.所谓 4 维数据,比如数据的形状是(10, 1, 28, 28),则它对应 10 个高为 28.长为 28.通道为 1 的数据.用 P ...

  8. 机器学习入门之:使用 scikit-learn 决策分类树来预测泰坦尼克号沉船生还情况

    代码 有关数据处理部分的相关解析,请看 30天吃掉那只 TensorFlow2 写的非常详细 不再在这里赘述 from sklearn import tree import pandas as pd ...

  9. 基于Jupyter Notebook从头学习机器学习 | 入门资料分享

    乾明 编译整理  量子位 报道 | 公众号 QbitAI 热心分享机器学习入门资料的人越来越多了. 今天跟大家介绍的是一个名为ZekeLabs的机构推出的机器学习入门资料. ZekeLabs是一个位于 ...

最新文章

  1. VC2008下编译使用OpenSSL
  2. MyBatis 框架系列之基础初识
  3. JVM调优: 转载JVM调优总结
  4. 清除webkit浏览器css设置滚动条
  5. Android IPC机制(五)用Socket实现跨进程聊天程序
  6. servlet中servletContext的五大作用(一)
  7. php echo nbsp,关于include里面的函数echo的问题
  8. 解决SSH项目乱码问题的环境配置方案
  9. 可重定位的ELF文件
  10. 多层感知机从零开始实现
  11. ssm-学子商城-项目第十二天
  12. 深入理解JVM虚拟机(总结篇)
  13. RHadoop的技术性文章
  14. Activiti6.0 - 核心数据库表及字段注释说明
  15. Yii路由之LimeSurvey去掉烦人的/index.php/*
  16. 电脑打开热点后无法连接到网络
  17. 红帽子linux9百度云,linux安装--红帽子Linux REDHAT 9.0 ISO(3CD)
  18. 【TWS使用系列1】如何从TWS的自选列表中添加/删除自选股?
  19. 高德地图API的一些使用心得
  20. 分布式锁的实现【转载】

热门文章

  1. TFTLCD屏幕实验
  2. VB和VB.NET的大致区别
  3. 论文格式word修改方法汇总
  4. Tomcatnbsp;Servletnbsp;JSPamp;nbs…
  5. window电脑可以上QQ但是连不上网解决办法
  6. LCD1602原理驱动代码及例程
  7. 移动平均法 and 指数平滑法
  8. 高性能MySQL -- 查询性能优化
  9. 破解XP管理员帐户密码
  10. 关于MacPorts