码迷,mamicode.com
首页 > 编程语言 > 详细

python机器学习之线性回归

时间:2018-07-08 23:12:46      阅读:272      评论:0      收藏:0      [点我收藏+]

标签:测线   pyplot   red   close   收益率   mil   fit   python   16px   

#线性回归最小二乘法

from sklearn import linear_model

import sys

import tushare as ts

import matplotlib.pyplot as plt

import pandas as pd

import sklearn.metrics as sm

sh=ts.get_hist_data(‘sh‘).sort_index()#获取上证指数每日数据,并按时间索引排序

pf=ts.get_hist_data(‘600000‘).sort_index()#获取浦发银行数据,并按时间索引排序

sh[‘re‘]=np.log(sh[‘close‘]/sh[‘close‘].shift(1))#计算上证指数收益率

pf[‘re‘]=np.log(pf[‘close‘]/pf[‘close‘].shift(1))#计算浦发银行收益率

sh=sh.dropna()#删除缺失值

pf=pf.dropna()#删除缺失值

data=pd.merge(sh[‘re‘],pf[‘re‘],left_index=True,right_index=True)#将数据合并

data.columns=[‘x‘,‘y‘]#给列命名

testdata=data[‘2018-05-01‘:]

traindata=data[‘2017-01-01‘:‘2018-04-30‘]

x_train=np.array(traindata[‘x‘]).reshape(len(traindata[‘x‘]),1)

y_train=np.array(traindata[‘y‘]).reshape(len(traindata[‘y‘]),1)

x_test=np.array(testdata[‘x‘]).reshape(len(testdata[‘x‘]),1)

y_test=np.array(testdata[‘y‘]).reshape(len(testdata[‘y‘]),1)#区分训练集,测试集

linearr=linear_model.LinearRegression()#建立线性回归模型

linearr.fit(x_train,y_train)#数据学习

y_train_pred=linearr.predict(x_train)#基于训练集得到的线性y值

plt.figure()

plt.scatter(x_train,y_train,color=‘green‘)#原始训练集数据散点图

plt.plot(x_train,y_train_pred,color=‘black‘,linewidth=4)#线性回归的拟合线

plt.title(‘train‘)#标题

plt.show()

y_test_pred=linearr.predict(x_test)

plt.scatter(x_test,y_test,color=‘green‘)#绘制测试集数据散点图

plt.plot(x_test,y_test_pred,color=‘black‘,linewidth=4)#基于线性回归的预测线

plt.title(‘test‘)

plt.show()

print(‘MSE=‘,sm.mean_squared_error(y_test,y_test_pred))#MSE值

print(‘R2=‘,sm.r2_score(y_test,y_test_pred))#R2值越大越好

python机器学习之线性回归

标签:测线   pyplot   red   close   收益率   mil   fit   python   16px   

原文地址:https://www.cnblogs.com/thechain/p/9281496.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!