Я новичок в python. Я создаю очень простую модель, которая может обнаруживать аномалии в данных временных рядов, которые в моем случае являются произвольными показаниями температуры (для обнаружения высоких температур). Мой набор данных выглядит следующим образом:
1
no | temp
1 | 36.5
2 | 39.8
3 | 37.4
4 | 40.2
5 | 40.8
Как видно, есть 2 пика или аномалии (выделены жирным шрифтом). Модель IsolationForest легко обнаруживает эти аномалии, и фрейм данных df['anomalies']
возвращает индексное местоположение аномалий.
Вот фрагмент кода, который сообщает об аномалиях (местоположения в наборе данных)
df['anomaly']=model.predict(df[['temp']])
anomaly=df.loc[df['anomaly']==-1]
print("Anomalies are detected at these positions")
anomaly_index=list(anomaly.index)
print(anomaly_index)
Приведенный выше код затем предсказывает аномалии в форме Расположение индексов (в наборе данных), например [43, 26, 126]
Исходя из этого, у меня есть две проблемы, которые я не могу для решения:
- Как получить значения из
anomaly_index
мест индекса. (Например, после обнаружения этих температурных аномалий я хотел бы получить соответствующие значения температуры (например, 39,8 и 40,8), чтобы в дальнейшем выполнять с ними действия. - Я могу построить кадры данных для исходных значений, но я хотел бы наложить / наложить выбросы или аномалии на графике (например, все показания температуры из набора данных вместе с этими двумя аномалиями).
Я перепробовал все возможные способов, но из-за моего отсутствия навыков в python я застрял на этой проблеме. Может ли кто-нибудь помочь?
ура