Машинное обучение и глубокое обучение играют жизненно важную роль в нашей повседневной жизни. Сегодняшняя машина может автоматически обнаруживать или классифицировать изображения. Здесь я хочу показать пошаговый процесс классификации изображений и повысить точность модели, и вы сможете понять, как экспериментировать с данными огромными способами.

Здесь вы можете увидеть классификацию изображений с помощью алгоритмов машинного обучения, таких как логистическая регрессия, KNN, классификатор случайного леса, Adaboost, нейронные сети (сверточные нейронные сети-CNN), алгоритмы обучения передачи (Resnet50, VGG-16, VGG-19 и другие) . Я реализую все алгоритмы шаг за шагом, чтобы вы могли реализовать и реализовать любую задачу классификации.

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

Предварительная обработка данных является важной частью перед обучением данных по выбранной вами модели. Я запускаю свой код в версии Google Colab Pro. Вы также можете запустить его в общей версии Google Colab. Здесь я использую набор данных kaggle Gender Classification.

Смонтируйте данные из Google colab и разархивируйте файл

from google.colab import drive
drive.mount('/content/drive')
# Path of the file 
path = '/content/drive/MyDrive/Colab Notebooks/Abdullah Al Hasib/image.zip'
# Extract the file
from zipfile import ZipFile
with ZipFile(path,'r') as zip:
zip.extractall('gender')

Здесь я взял проверочные данные для обучения и тестирования, потому что проверочные данные содержат почти 11000 изображений. Этого достаточно для алгоритмов машинного обучения. После того, как я выполню алгоритм глубокого обучения, я буду экспериментировать со всеми данными, потому что глубокое обучение может так много работать с большими данными.

# number of images in each sector
import os
print(len(os.listdir('/content/gender/Validation/female')))
print(len(os.listdir('/content/gender/Validation/male')))

Есть 5841 женское изображение и 5808 мужское изображение. Теперь возьмите изображения в один список и возьмите метку. Я изменил размер изображений в форме (48,48,3), и для мужского изображения метка равна 1, а для женского изображения метка равна 0.

Теперь нормализуйте данные (диапазон значений данных от 0 до 1) и измените форму изображения из 2D-изображения в 1D-вектор. Затем разделите данные для обучения и тестирования с помощью библиотеки sklearn.

Классификация изображений с использованием логистической регрессии (LR)

Теперь сопоставьте данные обучения с моделью LR. Затем спрогнозируйте тестовые данные с помощью обученной модели и посмотрите, насколько модель может обучиться по показателю точности.

Accuracy is : 0.9007153075822604

Для лучшего понимания вы также можете просмотреть отчет о классификации модели и матрицу путаницы.

             precision    recall  f1-score   support         
male         0.90      0.90      0.90      1725       
female       0.90      0.90      0.90      1770     
accuracy                         0.90      3495    
macro avg    0.90      0.90      0.90      3495 
weighted avg 0.90      0.90      0.90      3495

Это все для первой части. После части я напишу другие алгоритмы машинного обучения, алгоритмы глубокого обучения, трансферное обучение и многое другое.

Счастливого обучения :)