Если вы новичок в искусственном интеллекте или глубоком обучении, вот ваша первая CNN, а пока код глубокого обучения.

В. Почему данные IRIS?

О. Поскольку все уже знакомы с данными Iris, почему бы не начать с данных IRIS. Конечно, это слишком просто для CNN, но тогда было бы слишком просто понять и углубиться.

Хотя известно, что данные IRIS слишком малы для сложного процесса, такого как глубокое обучение, тем не менее, это хороший способ начать понимать глубокое обучение на базовом наборе данных, который мы все использовали в качестве первого примера науки о данных. Просто, коротко и легко.

Вот краткое описание со всем кодом, необходимым для этого.

Давайте импортируем несколько хороших пакетов

import matplotlib.pyplot as plt
import tensorflow as tf
import numpy as np
import pandas as pd
import os
import math

from tensorflow.keras.layers import Input,  Embedding
from tensorflow.keras.backend import square, mean
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import InputLayer, Input
from tensorflow.keras.layers import Reshape, MaxPooling1D
from tensorflow.keras.layers import Conv1D, Dense, Flatten
from sklearn.preprocessing import MinMaxScaler
from sklearn.model_selection import train_test_split

Вот фрагмент данных

Давайте прочитаем эти данные во фрейме данных

df = pd.read_excel('/content/IRIS_Edited.xlsx')

print(df)

Читать как

Прочтите характеристики

feature_names = [ 'sepal_length','sepal_width', 'petal_length','petal_width']
feature  = df[feature_names] 
 
target_names = ['species']
targets = df[target_names]

x_data = feature.values 
y_data = targets.values 

Подгонка данных, масштабирование данных и проверка данных

x_train, x_test, y_train, y_test = train_test_split(x_data, y_data, test_size=0.15)

x_scaler = MinMaxScaler()
x_train_ = x_scaler.fit_transform(x_train)
x_test_ = x_scaler.transform(x_test)

y_scaler = MinMaxScaler()
y_train_ = y_scaler.fit_transform(y_train)
y_test_ = y_scaler.transform(y_test)

Сделать модель CNN

model = Sequential()
model.add(Conv1D(64, 2, activation="relu", input_shape=(4,1)))
model.add(Dense(4, activation="relu"))
model.add(MaxPooling1D())
model.add(Flatten())
model.add(Dense(3, activation = 'sigmoid'))
model.compile(loss = 'mse', 
     optimizer = "adam",               
              metrics = ['mse'])
model.summary()

Вот модель и параметры

Найдите результат, т. точность

model.fit(x_train_, y_train_, batch_size=16,epochs=100)

result = model.evaluate(x=x_test_,
                        y=y_test_)

print("\n\nResult:", result)

Вот результаты тренировок и тестирования, потери и mse

Это приводит к результату с убытком и mse как 0,0372.