跳至内容
深圳市捷比信实业有限公司 · 产品选型与采购咨询联系业务人员
合金电阻捷比信 · 专业器件主题站

Python机器学习回归部分的应用与教程

简介和数据欢迎来到Python机器学习教程系列的回归部分。在这里,您应该已经安装了Scikit-Learn。如果没有,请安装它,以及Pandas和Matplotlib。 pip install numpypip install scipypip install scikit-learnpip install matplotlibpip install pandas除了这些教程范围的导入之外,我们还需要在此处使用Quandl:pip install quandl首先,对于我们来说,将其用于机器学习,回归是什么? ?其目标是接受连续数据,找到最适合数据的方程,并能够预测特定值。使用简单的线性回归,就可以通过创建最佳拟合直线来实现。在这里,我们可以使用该直线的方程式来预测将来的价格,其中日期是x轴。回归的一种流行用法是预测股价。由于我们将考虑价格随时间流逝的情况,并使用连续的数据集来尝试预测未来的下一个流动价格,因此我们可以这样做。回归是有监督的机器学习的一种类型,也就是说,科学家展示了它的功能,然后给出了教机器的正确答案。一旦机器被教授,科学家可以使用一些不可见的数据来测试机器,科学家可以知道正确的答案,而机器却不知道。将机器答案与已知答案进行比较,并测量机器的准确性。如果准确性足够高,科学家将考虑在现实世界中使用他们的算法。由于回归在股票价格中被广泛使用,因此我们可以从此处开始举例。首先,我们需要数据。有时很容易获得数据,有时则需要自己收集数据。在这里,我们至少可以从简单的股票价格和数量信息开始,这些信息来自Quandl。我们将获取Google的股价,其代码为GOOGL:将熊猫输入为pdimport quandldf = quandl.get(& quot; WIKI / GOOGL& quot;)print(df.head())注意:在撰写本文时本文的Quandl该模块用大写字母Q引用,但现在它是小写字母q,因此请导入quandl。在这里,我们有:开盘价高开盘价收盘价除息日期2004-08-19 100.00 104.06 95.96 100.34 44659000 02004-08-20 101.01 109.08 100.50 108.31 22834300 02004-08-23 110.75 113.48 109.05 109.40 18256100 02004-08-24 111.24 111.60 103.57 104.87 15247300 02004-08-25 104.96 108.00 103.88 106.00 9188600 0分割比例调整打开调整高调整低调整关闭日期2004-08-19 1 50.000 52.03 47.980 50.1702004-08-20 1 50.505 54.54 50.250 54.1552004-08- 23 1 55.375 56.74 54.525 54.7002004-08-24 1 55.620 55.80 51.785 52.4352004-08-25 1 52.480 54.00 51.940 53.000Adj。 VolumeDate2004-08-19 446590002004-08-20 228343002004-08-23 182561002004-08-24 152473002004-08-25 25 9188600这是一个很好的开始,我们有数据,但是有点太多。在这里,我们有很多列,其中许多是多余的,而有些则没有太大变化。我们可以看到常规和已修改(Adj)列是重复的。修改后的列看起来更理想。常规栏是当天的价格,但是股票有一些叫做“拆股”的东西。其中一股突然变成两股,因此一股的价格必须减半,但公司的价值保持不变。修改后的列针对股票拆分进行了调整,这使它们对于分析更加可靠。因此,我们继续剪切原始的DataFrame。 df = df [[' Adj。打开''调整高'调整Low''调整关闭' #39; adj。 [']]现在,我们有了修改后的专栏和卷。有几件事要注意。许多人谈论或听到关于机器学习的知识,这就像是一无所有的黑魔法。机器学习可以突出显示现有数据,但是数据必须首先存在。您需要有意义的数据。那么,您如何知道是否有意义?我最好的建议是简化您的大脑。考虑一下,历史价格会决定未来价格吗?有些人是这样认为的,但是随着时间的推移,事实证明这是错误的。但是历史规律呢?当它脱颖而出时是有道理的(机器学习可以提供帮助),但是它仍然太弱了。那么,随着时间的推移价格变化和数量之间的关系以及历史规律又如何呢?可能会更好。因此,正如您所看到的,并不是更多的数据更好,而是我们需要使用有用的数据。同时,原始数据应进行转换。考虑每天的波动。例如,最高价格和最低价格之间的百分比差是多少?每日百分比变化如何?您认为每日开盘价,最高价,最低价,收盘价或收盘价,价差/波动率等简单数据更好吗?我认为后者更好。前者是非常相似的数据点,而后者是基于前者的统一数据创建的,但具有更有价值的信息。