机器学习入门:入手sklearn框架+线性回归+案例(基金数据的预测)
来源:互联网 发布:计算机书籍推荐 知乎 编辑:程序博客网 时间:2024/05/29 16:55
读取基金数据,然后画线
# coding: utf-8import pandas as pdimport 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'].indexy = fund.loc['2017']['NAV']plt.plot(x, y)plt.show()
机器学习 ☞ 预测篇
我们先来学习预测算法中最基本的线性回归
。
首先我们来画一条直线
a,b = 3,5 # 随便定义的2个数字x = np.arange(1,100)y = a*x + 5plt.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-8import numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom 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'].indexx_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
是预测能力。
阅读全文
0 0
- 机器学习入门:入手sklearn框架+线性回归+案例(基金数据的预测)
- Python机器学习Sklearn入门之线性回归
- 机器学习sklearn多元线性回归
- 机器学习sklearn多元线性回归2
- 机器学习之线性回归 (Python SKLearn)
- 机器学习之线性回归预测销量
- 机器学习实验—线性回归预测
- 机器学习入门-线性回归
- 机器学习(3)线性回归sklearn.linear_model.LinearRegression
- 【机器学习sklearn】基于sklearn的股票预测
- 机器学习教程之2-线性回归(linear regression)的sklearn实现
- 【机器学习入门】线性回归的概率解释
- 从简单的线性回归入门机器学习
- 机器学习入门——线性回归
- 机器学习入门笔记(二)----线性回归
- python 线性回归 预测数据
- Python机器学习Sklearn入门案例(上)
- Python机器学习Sklearn入门案例(下)
- TCP和UDP的最完整的区别
- Hbase表备份——Snapshot
- 隐藏任务栏图标
- Win10+vs2013+opencv建立简单的人脸检测工程
- 新手入门指导:Vue 2.0 的建议学习顺序
- 机器学习入门:入手sklearn框架+线性回归+案例(基金数据的预测)
- 第三方分享
- 从一个html页面传值到另一个页面,两个html之间的值传递(js location.search用法)
- Oracle DML SQL题目篇1
- UE4C++之Interface的声明与使用
- Pythonh中用json.load() json.loads()加载json数据的方法
- WEB前端开发实战:小米官网的制作
- extern关键字解析
- 电池安全用于人类和鱼类---凯利讯半导体