Машинное обучение — это область искусственного интеллекта, которая в широком смысле определяется как способность машины имитировать разумное поведение человека. Системы искусственного интеллекта используются для выполнения сложных задач таким же образом, как люди решают проблемы.
На этот раз мы создадим модели машинного обучения с набором данных грибов. Мы получили эти данные с сайта Kaggle. В процессе создания машинного обучения используется Google Colaboratory.
Во-первых, нам нужно импортировать библиотеки Numpy, Pandas, Seaborn, Matplotlib, LabelEncorder из sklearn.preprocessing, train_test_split из sklearn.model_selection, отчет о классификации и матрицу путаницы.
import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns from sklearn.preprocessing import LabelEncoder from sklearn.metrics import classification_report from sklearn.metrics import confusion_matrix from sklearn.model_selection import train_test_split
Затем импортируйте набор грибных данных, предварительно загрузив его в формате csv в совместное хранилище Google.
df = pd.read_csv('mushrooms.csv')
Проверьте данные для каждой переменной, используя информацию о методе.
df.info()
Из информационного набора данных видно, что имеется 23 столбца с 8123 записями данных. Далее мы визуализируем данные для каждой переменной.
for i in df.columns: sns.countplot(data=df,x=i) plt.show()
Следующим шагом является выбор зависимых и независимых переменных. с классом в качестве зависимой переменной. Кроме того, зависимая переменная вводится в переменную у, а независимая переменная вводится в переменную х.
x=df.drop('class',axis=1) y=df['class'] x.head()
Нам нужно использовать кодировщик меток для преобразования категориальных данных в числовые.
Encoder_X = LabelEncoder() for col in x.columns: x[col] = Encoder_X.fit_transform(x[col]) Encoder_y=LabelEncoder() y = Encoder_y.fit_transform(y)
Набор данных сейчас находится на стадии обучения и тестирования. Данные обучения будут использоваться для обучения алгоритма с целью поиска подходящей модели, тогда как данные тестирования будут использоваться для тестирования и определения производительности модели, полученной на этапе тестирования. Мы используем соотношение 80:20 для тестирования данных.
X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=42)
Сейчас мы находимся на этапе создания модели машинного обучения с использованием Random Forest. Random Forest — это алгоритм обучения с учителем. «Лес», который он строит, представляет собой набор деревьев решений, обычно обученных методом «мешков». Общая идея метода бэггинга заключается в том, что сочетание моделей обучения улучшает общий результат.
Проще говоря, Random Forest строит несколько деревьев решений и объединяет их для получения более точных и стабильных прогнозов. Одним из больших преимуществ Random Forest является то, что его можно использовать для задач классификации и регрессии, которые сегодня составляют большинство систем машинного обучения.
from sklearn.ensemble import RandomForestClassifier rf = RandomForestClassifier(oob_score=True) rf.fit(X_train, y_train) y_pred=rf.predict(X_test)
Последним шагом является оценка модели с использованием матрицы путаницы и отчета о классификации. Матрица путаницы — это матрица, используемая для определения эффективности моделей классификации для заданного набора тестовых данных. Отчет о классификации — это показатель оценки производительности в машинном обучении. Он используется для демонстрации точности, отзыва, оценки F1 и поддержки обученной модели классификации.
sns.heatmap(confusion_matrix(y_test, y_pred),annot=True)
print(classification_report(y_test,y_pred))
Отчет о классификации показывает, что созданное нами машинное обучение имеет точность 100%, а это означает, что машина может правильно предсказать класс грибов. Однако 100% точность почти невозможна в каждом случае.