Синтез данных и цифровые двойники. Джейд Картер. Читать онлайн. Newlib. NEWLIB.NET

Автор: Джейд Картер
Издательство: Автор
Серия:
Жанр произведения:
Год издания: 2024
isbn:
Скачать книгу
as pd

      import numpy as np

      import matplotlib.pyplot as plt

      from sklearn.ensemble import IsolationForest

      from sklearn.preprocessing import StandardScaler

      # Генерация синтетических данных для моделирования данных с сенсоров двигателя

      np.random.seed(42)

      n_samples = 1000

      temperature = np.random.normal(loc=70, scale=5, size=n_samples) # Температура

      vibrations = np.random.normal(loc=10, scale=2, size=n_samples) # Вибрации

      pressure = np.random.normal(loc=100, scale=10, size=n_samples) # Давление

      # Внесем несколько аномалий

      temperature[995:] = np.random.normal(loc=90, scale=1, size=5)

      vibrations[995:] = np.random.normal(loc=20, scale=1, size=5)

      pressure[995:] = np.random.normal(loc=140, scale=1, size=5)

      # Создание DataFrame

      data = pd.DataFrame({'Temperature': temperature, 'Vibrations': vibrations, 'Pressure': pressure})

      # Стандартизация данных для улучшения работы модели

      scaler = StandardScaler()

      data_scaled = scaler.fit_transform(data)

      # Используем Isolation Forest для обнаружения аномалий

      model = IsolationForest(contamination=0.01, random_state=42)

      data['Anomaly'] = model.fit_predict(data_scaled)

      # Аномалии отмечаются как -1

      anomalies = data[data['Anomaly'] == -1]

      # Визуализация данных

      plt.figure(figsize=(10, 6))

      plt.scatter(data.index, data['Temperature'], c='blue', label='Temperature')

      plt.scatter(data.index, data['Vibrations'], c='green', label='Vibrations')

      plt.scatter(data.index, data['Pressure'], c='orange', label='Pressure')

      # Выделение аномалий

      plt.scatter(anomalies.index, anomalies['Temperature'], c='red', label='Anomalies', marker='x')

      plt.title("Engine Sensor Data with Anomaly Detection")

      plt.xlabel("Sample Index")

      plt.ylabel("Sensor Readings")

      plt.legend(loc='best')

      plt.show()

      # Вывод информации об аномалиях

      print("Anomalies detected:")

      print(anomalies)

      ```

      Описание кода:

      1. Синтетические данные: Мы генерируем данные, которые представляют параметры, собираемые с сенсоров на двигателе: температуру, вибрации и давление. В конце датасета специально добавляем аномалии для тестирования.

      2. Стандартизация данных: Для того чтобы алгоритм машинного обучения работал более эффективно, мы стандартизируем данные с помощью `StandardScaler`.

      3. Модель Isolation Forest: Мы используем алгоритм Isolation Forest для обнаружения аномалий. Он предназначен для поиска редких или необычных точек в данных. В нашем случае мы можем обнаружить моменты, когда параметры двигателя начинают отклоняться от нормы, что может указывать на будущую поломку.

      4. Визуализация: Рисуем график, который показывает нормальные данные и выделяет аномалии. Это позволяет визуально увидеть моменты, когда сенсоры фиксируют ненормальные значения.

      Результат:

      Модель определит аномалии в данных сенсоров (например, резкое повышение температуры, вибраций или давления). Выявленные аномалии могут быть сигналом о потенциальных неисправностях двигателя, что позволяет принимать меры заранее, до наступления поломки.

      Конец ознакомительного фрагмента.

      Текст предоставлен ООО «Литрес».

      Прочитайте эту книгу целиком, купив полную легальную версию на Литрес.

      Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.

/9j/4AAQSkZJRgABAQEAZABkAAD/2wBDAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFhEYIx8lJCIfIiEmKzcvJik0KSEiMEExNDk7Pj4+JS5ESUM8SDc9Pjv/2wBDAQoLCw4NDhwQEBw7KCIoOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozv/wAARCAQABAADASIAAhEB