1. 首页 > 配资平台 >

使用支持向量回归进行Facebook股票预测

  利用Python并支持矢量回归。

  这篇文章中,我将向您展示如何使用机器学习算法,即支持向量回归(SVR)来创建自己的股票预测Python程序。这一计划中,我将使用Facebook(FB)股票数据,并根据这些数据预测某一天的开盘价格。

  SVR(SVR)是一种支持向量机,也是一种监督学习算法,用于对数据进行回归分析。1996年,由ChristopherJ.C.Burges,VladimirN.Vapnik,HarrisDrucker,AlexanderJ.Smola和LindaKaufman提出的SVM回归模型的版本。由于SVR所产生的模型仅依赖于一组训练数据,因此用于建立模型的代价函数忽略了任何接近模型预测的训练数据。

  SVM优点:

  对于高维空间,效果是明显的。

  如有清晰的间隔界限,工作效果良好。

  少量的支撑向量决定最终的结果,它不仅可以帮助我们抓住关键的样本,并且“剔除”大量的多余的样本。

  对矢量回归的支持不足:

  在拥有大量数据集的情况下,它的性能很差。

  当数据集存在噪声(大量额外的无意义信息)时,性能将非常低。

  核心类型:

  直线。

  多项式模型

  径向基函数rbf的高斯核函数

  西格莫德。

  程序启动:

  写一行代码之前,最好在代码前面添加注释,以描述我们需要做什么。这样,我们就可以回顾代码,并且准确地知道它是如何工作的。利用SVR(支持向量回归)模型预测FB类股某一天的价格。

  输入所需库。

  mportpandasaspdimportnumpyasnpfromsklearn.svmimportSVRimportmatplotlib.pyplotasplt。

  下一步,我将把从finance.yahoo.com上得到的Facebook股票数据装入一个名为'df'的数据框,用缩写变量表示。之后再输出前面一行的数据。

  注:这是雅虎最近31天、2019-05-01到2019-05-31的数据。

  但是,雅虎可能在某些日子不会记录股票价格,所以数据集中的记录数量可能少于每天。

  df.head(),#Loadthedatadf=pd.read_csv('FB_30_days.csv')

  前5行数据来自FB_30_days.csv。

  创建一个变量,将其设置为空列表,将其用作独立和依赖数据集。

  创建类/Xandydatasetdates=[]prices=[]

  取得资料集中的行数和列数,以检视每一行及列的数目,其中有22列及7列。

  #Getthenumberofrowsandcolumnsinthedatasetdf.shape.)

  该数据集有22行7列。

  该数据集有22行7列。

  输出最后一行数据(我们将测试此数据)。注日期为2019-05-31,日期为31。它是模型的输入,预计开盘价格为$180.279999。

  df.tail(1)#Printthelastrowofdata(thiswillbethedatathatwetheston)

  最后一行数据用于测试/验证模型。

  重新创建数据框,方法是获取除用于测试模型的最后一行以外的所有数据,并将缺少最后一行的新数据重新存储到'df'。接着输出新数据集的行数和列数。

  print(df.shape)#Getallofthedataexceptforthelastrowdf=df.head(len(df)-1)

  少了一行新数据。数据共有21行7列。

  取得日期列中的所有行,并将它们存储在名为'df_dates'的变量中,然后从打开列中取得所有行,将数据存储在名为'df_open'的变量中。

  DF_dates=df.loc[:','Date']#GetalloftherowsfromtheDatecolumndf_open=df.loc#GetalloftherowsfromtheOpencolumn。

  建立独立的资料集合'X',并将资料储存在变数'dates'中。

  建立相依性资料集合'y',并将资料储存于变数'prices'。

  这两种方法都可以通过向每个列表添加数据来实现。

  注:对于独立的数据集,我们只需要从日期开始的日期,所以我使用split函数,在将数据添加到日期列表时,将日期转换为整数。

  createtheindependentdataset'X'asdatesfordateindf_dates:dates.append('int(date.split('-')[2]])#Createthedependentdataset'y'aspricesforopen_priceindf_open:prices.append(open_price))

  检视资料集中记录的日期天数。

  #Seewhatdayswererecorededintehdatasetprint(日期)

  记录在数据集中的日期。

  使用3种不同的支持向量回归(SVR)模型和3种不同的内核创建一个函数,以便能够看到哪个内核性能最好。该功能有三个参数:日期、价格以及我们希望预测价格的日期。为了达到这个目的,首先我要建立一个有3个不同内核(线性,多项式,径向基函数)的SVR模型。下一步,我将使用日期和价格数据训练每一个模型。最终,我会把模型画在图表上,看看哪种模型最适合在一天中进行预测。

  (1)..functiontomakepredictionsusing3differentsupportvectorregressionmodelswith3differentkernalsdefpressionsmodelsupport..svrict.svrict.svrict.svrictor.svrictor.svrictor.svrictor.svrictor.svrictor.svrictor.svrictor.svrictor.svrictor.svrictor.svrictor.svrictor.svrictor.svrictor.svrictor.svrictor.svrictor.svrictor.svrictor.svrictor.svrictor.svrictor.svrictor.svrictor.svrictor.svrictor.svrictor.svrictor

  如今,我可以开始预测FB股票的价格了。从最初的数据集中剔除最后一行数据,日期为2019-05-31,这是模型输入,用于预测开盘价,$180.279999。

  接下来,我将测试这个模型,并将预测日期设置为31。RBF是一种支持向量回归模型,该模型使用了内核的一个叫做径向基函数。这个模型预测180.333549美元的31天价格,与真实价格180.279999美元非常接近。

  print(predicted_prices,prices,[[31]])#PrediceofFBonday31predicted_price=predict_prices(dates,prices,prices,prices)

  现在您已经完成了创建SVR程序以预测FB股的表现!

本文由网上采集发布,不代表我们立场,转载联系作者并注明出处:http://www.xhsgupiao.com/a/pzpt/334.html

联系我们

在线咨询:点击这里给我发消息

微信号:

工作日:9:30-18:30,节假日休息