jupyter 写一个函数求三个数的平均值

说明:本教程为《数字图像处理Python OpenCV实战》的配套代码相关内容。
免费视频教程为0-6章(标题号≤6),可在观看。
所有课件及源代码可在此处下载:
有问题可在QQ群()指出,进群答案:数字图像处理。在本文评论指出可能导致回复很晚。



pandas 是基于 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

#Titanic.csv是一个泰坦尼克号乘客信息数据集,用于做泰坦尼克生还预测。

1.2.1利用一个列表来生成数据并自动生成对应的索引:

#以‘’为基数,不断加1产生新的索引,periods=生成的索引数目
#通过数据生成时间,标签,数据值生成一个 DataFrame
 








#以‘’为基数,不断加1产生新的索引,periods=生成的索引数目
#通过数据生成时间,标签,数据值生成一个 DataFrame
 









可以通过这类方法去从各个角度浏览DataFrame,选择其中的值


本节用到的数据如下(dataframe):










#查看所有列标签的名称 #查看datafream各方面的值,(每列属性的)平均值,最大值,最小值,标准差















选择满足某种特征的数据


本小节用到的数据如下(dataframe):











选择列数据,选择行数据(两种方法,基于索引,基于位置)

#选择0到3行(不包括第三行)的数据,这种方法是基于位置的 #选择索引‘’到索引‘’(包括‘’)之间的数据,基于索引








#选择A,B两列标签的数据 #选择索引'',''之间,A,B两列标签的数据








#选取3~5行,0~2列的数据(不包含第5行,第2列) #选取1,2,4行,0,2列的数据









通过布尔索引来选取数据

#选取A列值大于0的数据 #选取所有大于0的数据












本小节用到的数据如下(dataframe):







#将第0行第A列的数据置为0
#将0行1列的数据置为0
 


#删除所有存在缺失值的行数据
#用某个值去补全所有缺失值(下面这句代码是将所有缺失值全部用5来代替)
#显示出所有数据的状态(是否存在缺失值,若为true则说明该位置存在缺失值)
 









对数据的一些操作(取平均值,排序等等)


本小节用到的数据如下(dataframe):




 





本小节用到的df为两个新生成的df,下面有详细代码及截图。 #将df的前3行,以及第7行之后的行数据合并生成一个新的dataframe #将s添加在df,位置会在最后一行



将数据根据某个属性分类。


#将数据按照A,B两个标签来分类,A有两个属性值,B有三个属性值,则组合有2*3=6种,即分#为6类

指数平滑方法适用于非平稳数据(即具有趋势和/或季节性的数据),其工作方式类似于指数移动平均线。预测是过去观察的加权平均值。这些模型更加强调最近的观察结果,因为权重随时间呈指数级变小。平滑方法很受欢迎,因为它们速度快(不需要大量计算)并且在预测方面相对可靠。(扫描本文最下方二维码获取全部完整源码和Jupyter Notebook 文件打包下载。)

,最基本的模型称为简单指数平滑(SES)。这类模型最适用于所考虑的时间序列不表现出任何趋势或季节性的情况。它们也适用于只有几个数据点的系列。

该模型通过平滑参数 α 进行参数化,其值介于 0 和 1 之间。值越高,对最近观察的权重就越大。当 α = 0 时,对未来的预测等于历史数据(模型拟合的数据)的平均值。当 α = 1 时,所有预测值都与训练数据中的最后一个观察值相同。

简单指数平滑的预测函数是平坦的,即所有的预测,无论时间跨度如何,都等于同一个值——最后一个级别的分量。这就是为什么这种方法只适用于既没有趋势也没有季节性的序列。

Holt 的模型是简单指数平滑(SES)的扩展,它通过将趋势分量添加到模型规范中来说明序列中的趋势。当数据存在趋势但没有季节性时,应使用此模型。

Holt 模型的一个问题是趋势在未来是恒定的,这意味着它会无限增加/减少。这就是模型的扩展通过添加阻尼参数 φ 来抑制趋势的原因。它使趋势在未来收敛到一个恒定值,从而有效地将其拉平。Hyndman 和 Athanasopoulos (2018) 指出 φ 很少小于 0.8,因为阻尼对较小的 φ 值具有非常强的影响。

最佳做法是限制 φ 的值,使其介于 0.8 和 0.98 之间,因为对于 φ = 1,阻尼模型等效于没有阻尼的模型。

在本文中,我们将向您展示如何将平滑方法应用于 Google 的每月股票价格(具有趋势且没有明显季节性的非平稳数据)。我们将模型与 年的价格进行拟合,并对 2018 年进行预测。

在下文中,我们将在相同的图上绘制多条线,每条线代表不同模型的类型。这就是为什么我们要确保这些线条清晰可辨,尤其是黑白线条。出于这个原因,我们将为绘图使用不同的调色板,即:

执行以下步骤以使用指数平滑方法来创建对 Google 股票价格的预测。

2、下载调整后的谷歌股价数据:

6、拟合三个简单指数平滑(SES)模型并为它们创建预测:

7、绘制原始价格和模型的结果:

在前面的图中,我们可以看到我们在本文的介绍中描述的 SES 的特征——预测是一条平坦的线。我们还可以看到 优化程序选择的最优值接近 1。此外,第三个模型的拟合线实际上是观察到的价格向右移动的线。

8、拟合 Holt 平滑模型的三个变体并创建预测:

9、绘制原始价格和模型的结果:

在第 2 步到第 5 步中,我们下载了 年 Google 的股票价格,将这些值重新采样到每月频率,将数据拆分为训练()和测试(2018)集,并绘制了系列图。

在第 6 步中,我们使用 类及其拟合方法拟合了三个不同的 SES 模型。对于拟合,我们只使用了训练数据。我们可以手动选择平滑参数 () 的值,但是,最佳实践是让 优化它以获得最佳拟合。这种优化是通过最小化残差平方和(误差)来完成的。我们使用预测方法创建了预测,该方法需要我们要预测的周期数(等于测试集的长度)。在第 7 步中,我们将结果可视化并将其与实际股票价格进行比较。我们使用拟合模型的拟合值方法提取模型的拟合值。

在第 8 步中,我们使用了 类(它是更加 通用的 类)以适合 的线性趋势模型。默认情况下,模型中的趋势是线性的,但我们可以通过指定 并使用添加阻尼来使其呈指数增长。与 SES 的情况一样,使用不带参数的 方法会导致运行优化例程以确定参数的最佳值。我们可以通过运行来访问它。在示例中,我们手动将阻尼参数的值指定为 0.99,因为优化器选择 1 作为最佳值,这在图上是无法区分的。在第 9 步中,我们将结果可视化。

Holt 的方法有一个扩展,称为 Holt-Winter 季节性平滑法。它考虑了时间序列中的季节性。此模型没有单独的类,但我们可以通过添加 和 参数来调整 类。

无需过多赘述,此方法最适合具有趋势和季节性的数据。该模型有两种变体,它们具有加法或乘法季节性。在前一种中,季节变化在整个时间序列中或多或少是恒定的。在后者中,变化与时间的流逝成比例地变化。

从绘制的预测图中,我们可以看到,与 SES 和 Holt 的线性趋势模型相比,该模型更加灵活。序列开始时的极端拟合值是由于没有足够的观察值可供回溯(我们在处理月度数据时选择了)。

扫描本文最下方二维码获取全部完整源码和Jupyter Notebook 文件打包下载。

我要回帖

更多关于 java输入三个数求平均值 的文章

 

随机推荐