initial
This commit is contained in:
commit
4db88e4641
BIN
MDA/Task.docx
Normal file
BIN
MDA/Task.docx
Normal file
Binary file not shown.
BIN
MDA/datasets/NN3_COMPLETE.xls
Normal file
BIN
MDA/datasets/NN3_COMPLETE.xls
Normal file
Binary file not shown.
BIN
MDA/datasets/NN3_REDUCED.xls
Normal file
BIN
MDA/datasets/NN3_REDUCED.xls
Normal file
Binary file not shown.
BIN
MDA/datasets/cif-dataset.xls
Normal file
BIN
MDA/datasets/cif-dataset.xls
Normal file
Binary file not shown.
BIN
MDA/datasets/statistic.xls
Normal file
BIN
MDA/datasets/statistic.xls
Normal file
Binary file not shown.
63
MDA/project/main.py
Normal file
63
MDA/project/main.py
Normal file
@ -0,0 +1,63 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import pandas as pd
|
||||
import numpy as np
|
||||
from sklearn.preprocessing import StandardScaler, MinMaxScaler
|
||||
from statsmodels.tsa.holtwinters import ExponentialSmoothing
|
||||
from IPython.display import display
|
||||
|
||||
# Определим функцию сглаживания временного ряда, она понадобится позже
|
||||
def smooth_time_series(ts):
|
||||
## 1. Метод скользящего окна
|
||||
## Параметр window задает ширину окна усреднения значений
|
||||
#return ts.rolling(window=5).mean()
|
||||
|
||||
## 2. Метод экспоненциального сглаживания (метод Хольта-Уинтерса)
|
||||
## варианты для параметра trend: "add", "mul", "additive", "multiplicative", None
|
||||
## варианты для параметра seasonal: "add", "mul", "additive", "multiplicative", None
|
||||
## seasonal_periods задает для модели предполагаемый интервал сезонности,
|
||||
## когда ВР будет иметь похожие уровни и тенденции
|
||||
|
||||
model = ExponentialSmoothing(ts, trend="additive", seasonal="additive", seasonal_periods=5)
|
||||
return model.fit().fittedvalues
|
||||
|
||||
## Для чтения из файла необходимо взять временные ряды из предложенных наборов
|
||||
## и сохранить в csv файл как показано в примере, сформировав датасет
|
||||
dataset = pd.read_csv("ts2.csv", delimiter=";")
|
||||
|
||||
## после того как файл был прочтен, можно вывести содержимое временных рядов в консоль
|
||||
print(dataset)
|
||||
|
||||
## для выполнения первой части задания необходимо подобрать метод
|
||||
## и параметры сглаживания временного ряда
|
||||
## для этого выше реализован пример функции
|
||||
sds = dataset.apply(smooth_time_series)
|
||||
|
||||
plt.plot(sds, label='Сглаженный временной ряд')
|
||||
plt.plot(dataset, label='Исходный временной ряд')
|
||||
plt.show()
|
||||
|
||||
df = pd.DataFrame(MinMaxScaler().fit_transform(sds), columns=sds.columns)
|
||||
print(df)
|
||||
|
||||
# расчет степени корреляции между сглаженными временными рядами
|
||||
matrix = df.corr()
|
||||
print(matrix)
|
||||
|
||||
# для примера сравним корреляцию для несглаженных временных рядов
|
||||
matrix2 = dataset.corr()
|
||||
print(matrix2)
|
||||
|
||||
# визуализация матрицы корреляции
|
||||
plt.imshow(matrix, cmap='Blues')
|
||||
# добавление цветовой шкалы
|
||||
plt.colorbar()
|
||||
|
||||
# для диаграммы понадобятся имена временных рядов
|
||||
variables = []
|
||||
for i in matrix.columns:
|
||||
variables.append(i)
|
||||
|
||||
# Метки добавляются на диаграммы
|
||||
plt.xticks(range(len(matrix)), variables, rotation=45, ha='right')
|
||||
plt.yticks(range(len(matrix)), variables)
|
||||
plt.show()
|
17
MDA/project/ts.csv
Normal file
17
MDA/project/ts.csv
Normal file
@ -0,0 +1,17 @@
|
||||
Features count by week;Testing time by week
|
||||
3;2.5
|
||||
5;2.833333333
|
||||
6;2.966666667
|
||||
9;3.066666667
|
||||
16;4.383333333
|
||||
16;6.466666667
|
||||
16;5.416666667
|
||||
25;5.433333333
|
||||
29;5.583333333
|
||||
42;5.683333333
|
||||
42;5.15
|
||||
50;5.633333333
|
||||
54;6.033333333
|
||||
58;12.86666667
|
||||
59;6.783333333
|
||||
60;4.1
|
|
17
MDA/project/ts2.csv
Normal file
17
MDA/project/ts2.csv
Normal file
@ -0,0 +1,17 @@
|
||||
first;second;third
|
||||
3;2.5;1
|
||||
2;2.833333333;2
|
||||
3;2.966666667;3
|
||||
3;3.066666667;4
|
||||
4;4.383333333;5
|
||||
6;6.466666667;6
|
||||
5;5.416666667;7
|
||||
5;5.433333333;8
|
||||
5;5.583333333;9
|
||||
5;5.683333333;10
|
||||
5;5.15;11
|
||||
5;5.633333333;12
|
||||
6;6.033333333;13
|
||||
12;12.86666667;14
|
||||
6;6.78333333;15
|
||||
6;6.5;16
|
|
Loading…
x
Reference in New Issue
Block a user