Это простой проект ИНС для тех, кто плохо знаком с ИНС и хочет применить ИНС в простом проекте.
Я буду объяснять код, если вы не знакомы с ИНС, то можете посмотреть это видео
В этой модели мы должны предсказать, есть ли у человека диабет или нет.
Шаг 1. Сначала мы импортируем библиотеки
# Importing libraraies import pandas as pd from keras.models import Sequential from keras.layers import Dense
- Pandas используется для обработки и анализа данных.
- Sequential используется для инициализации нейронной сети.
- Dense используется для создания слоев в нашей искусственной нейронной сети.
Шаг 2. Загрузите набор данных
# Loading the dataset dataset = pd.read_csv('pima-indians-diabetes.csv')
Чтение файла CSV!
Шаг 3. Разделение набора данных
# Feature and target matrix X = dataset.iloc[:, 0:8].values y = dataset.iloc[:, 8].values
В массиве [:, 0:8] «:» представляет количество строк, и мы берем все строки, а «0:8» представляет количество столбцов, которые мы берем в столбце от 0 до 7 (8 не является включены).
Шаг 4.Определение модели
# Defining the model model = Sequential() model.add(Dense(12, input_dim=8, activation='relu')) # input layer model.add(Dense(8, activation='relu')) # hidden layer model.add(Dense(1, activation='sigmoid')) # out layer
Sequential назначается переменной модели
Поскольку мы знаем, что Dense используется для создания слоев, первый слой, который мы создаем, — это входной слой.
В входном слое мы назначаем input_dim = 8,означает, что мы используем 8 входных данных (матрица признаков X) для обучения ИНС.
Скрытый слой,у нас снова 8 (концепция обратного распространения), функция активации, используемая в входном и скрытом слое, — это функция выпрямителя ('relu').
выходной слой , мы используем сигмоидальную функцию, и выход равен 1 (потому что это проблема классификации 1 или 0)
Шаг 5. Компиляция подгонки модели
# Compile the keras model model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) # Fit the keras model model.fit(X, y, epochs=150, batch_size=10)
Составление всей искусственной нейронной сети (ИНС).
1. Оптимизатор — это просто алгоритм, который используется для поиска оптимального набора весов в нейронной сети. В оптимизаторе используется алгоритм стохастический градиентный спуск adma.
2. потеря,используется ‘binary_crossentropy’, потому что это проблема классификации.
3. Показатели — это критерий, который вы выбираете для оценки своей модели. «точность» используется для улучшения производительности модели.
Метод подбора используется для подгонки нашей ИНС к обучающему набору.
X, y используются в качестве обучающего набора, эпохи =150; batch_size = 10, поэтому мы видим, что точность улучшается с каждым раундом.
Шаг 6.Оценка модели
# Evaluate the keras model _, accuracy = model.evaluate(X, y) print("Accuracy: %.2f" % (accuracy*100))
Печатаем точность нашей модели!
И мы закончили!
Вы можете получить код, файлы из здесь