Создал простую искусственную нейронную сеть с использованием TensorFlow и Keras, которая классифицирует органические соединения как мускусные или не мускусные.

Цель

Разработать модель глубокого обучения, которая классифицирует органические соединения как мускусные или не мускусные, используя язык программирования python и библиотеки глубокого обучения.

Предпосылки

Прежде чем приступить к работе, вы должны хорошо понимать:

  1. Язык программирования Python
  2. Библиотеки глубокого обучения (Tensorflow, Keras)

Набор данных

Ссылка для загрузки набора данных:



получить данные

вне

--2021-07-06 11:17:20--  https://cainvas-static.s3.amazonaws.com/media/user_data/vomchaithany/musk.csv
Resolving cainvas-static.s3.amazonaws.com (cainvas-static.s3.amazonaws.com)... 52.219.160.35
Connecting to cainvas-static.s3.amazonaws.com (cainvas-static.s3.amazonaws.com)|52.219.160.35|:443... connected.
HTTP request sent, awaiting response... 304 Not Modified
File ‘musk.csv’ not modified on server. Omitting download.

Импортируйте необходимые библиотеки

Загрузите данные

вне

Предварительная обработка данных

Разделите данные для обучения и тестирования

вне

((4618, 166), (4618,))

Создайте, обучите и сохраните модель

вне

Epoch 1/15
145/145 [==============================] - 0s 3ms/step - loss: 0.4019 - accuracy: 0.8441 - val_loss: 0.2712 - val_accuracy: 0.9157
Epoch 2/15
145/145 [==============================] - 0s 2ms/step - loss: 0.2232 - accuracy: 0.9309 - val_loss: 0.1938 - val_accuracy: 0.9444
Epoch 3/15
145/145 [==============================] - 0s 2ms/step - loss: 0.1743 - accuracy: 0.9461 - val_loss: 0.1602 - val_accuracy: 0.9480
Epoch 4/15
145/145 [==============================] - 0s 2ms/step - loss: 0.1454 - accuracy: 0.9530 - val_loss: 0.1333 - val_accuracy: 0.9601
Epoch 5/15
145/145 [==============================] - 0s 2ms/step - loss: 0.1238 - accuracy: 0.9591 - val_loss: 0.1167 - val_accuracy: 0.9641
Epoch 6/15
145/145 [==============================] - 0s 2ms/step - loss: 0.1095 - accuracy: 0.9632 - val_loss: 0.1033 - val_accuracy: 0.9682
Epoch 7/15
145/145 [==============================] - 0s 2ms/step - loss: 0.0946 - accuracy: 0.9693 - val_loss: 0.0946 - val_accuracy: 0.9646
Epoch 8/15
145/145 [==============================] - 0s 2ms/step - loss: 0.0848 - accuracy: 0.9725 - val_loss: 0.0859 - val_accuracy: 0.9717
Epoch 9/15
145/145 [==============================] - 0s 2ms/step - loss: 0.0758 - accuracy: 0.9766 - val_loss: 0.0798 - val_accuracy: 0.9732
Epoch 10/15
145/145 [==============================] - 0s 2ms/step - loss: 0.0700 - accuracy: 0.9783 - val_loss: 0.0737 - val_accuracy: 0.9737
Epoch 11/15
145/145 [==============================] - 0s 2ms/step - loss: 0.0611 - accuracy: 0.9831 - val_loss: 0.0670 - val_accuracy: 0.9783
Epoch 12/15
145/145 [==============================] - 0s 2ms/step - loss: 0.0548 - accuracy: 0.9842 - val_loss: 0.0622 - val_accuracy: 0.9803
Epoch 13/15
145/145 [==============================] - 0s 2ms/step - loss: 0.0505 - accuracy: 0.9857 - val_loss: 0.0612 - val_accuracy: 0.9798
Epoch 14/15
145/145 [==============================] - 0s 2ms/step - loss: 0.0452 - accuracy: 0.9861 - val_loss: 0.0564 - val_accuracy: 0.9823
Epoch 15/15
145/145 [==============================] - 0s 2ms/step - loss: 0.0404 - accuracy: 0.9883 - val_loss: 0.0546 - val_accuracy: 0.9828

Графики

потеря против потери проверки

вне

точность против точности проверки

вне

Точность нашей модели

вне

62/62 [==============================] - 0s 1ms/step - loss: 0.0546 - accuracy: 0.9828
[0.0546199269592762, 0.9828282594680786]

Предсказания

вне

array([[1.4935225e-03],
       [6.3299501e-01],
       [3.2852648e-03],
       [7.9143688e-04],
       [2.2959751e-04]], dtype=float32)

вне

[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0]

вне

array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0])

здесь мы видим, что прогнозируемые значения совпадают с фактическими значениями

отчет о классификации и тепловая карта

вне

precision    recall  f1-score   support
           0       0.99      0.99      0.99      1673
           1       0.94      0.95      0.95       307
    accuracy                           0.98      1980
   macro avg       0.96      0.97      0.97      1980
weighted avg       0.98      0.98      0.98      1980

Тепловая карта

вне

Ссылка для доступа к блокноту:

Вывод:

Мы обучили нашу простую ИНС с помощью TensorFlow и Keras для классификации мускусных и не мускусных соединений и получили точность 98%.

Ссылка на блокнот: Здесь

Фото: Ом Чайтанья В.