Привет, ребята, сегодня я расскажу вам о машинном обучении. Машинное обучение - это отрасль искусственного интеллекта (ИИ) и информатики , которая фокусируется на использовании данных и алгоритмов для имитации того, как люди учатся, с постепенным повышением его точности. Это метод анализа данных, который автоматизирует построение аналитических моделей. Это захватывающий предмет, который откроет ваши мысли не только о цветах, вы узнаете, как отправлять много информации на свою машину, позволить ей учиться сама по себе и уметь предсказывать, когда она представлена неизвестным подмножеством.
В этом руководстве вы узнаете, как классифицировать цветы на основе собранных мной образцов. Мы обучим нашу модель на основе этих данных, а затем наша модель сможет предсказать тип цветка, когда мы предоставим атрибуты цветка, это также может действовать в обратном порядке, когда мы указываем имя цветка и получаем желаемый цветок. атрибуты. Этот тип данных неструктурирован.
Давайте погрузимся в это
Прежде чем вы начнете, вам необходимо получить некоторые основы:
- Язык программирования Python
- Структуры данных и алгоритмы
Нашей IDE для этого руководства будет Google Colaboratory. Мне это нравится, потому что он дает вам интересные функции прямо из коробки.
Отправляйтесь в Google Colab, это создает новый Colab и готов к нашему уроку.
2. Я подготовил для вас некоторые данные, на которых мы будем тренироваться, в формате CSV. Это выглядит так, как показано ниже. Я разместил его здесь https://modcom.co.ke/datasets/iris.csv или https://drive.google.com/file/d/1V3LcwJ1n9p4s3IYBFrMFGwCcpqRx7LU-/view?usp=sharing
3. Мы импортируем pandas, библиотеку, которая поможет нам прочитать указанный выше файл CSV. Затем создайте переменную с именем data, в которой будут храниться результаты, полученные после чтения файла .csv. Мы распечатываем данные, чтобы проверить, действительно ли мы получаем желаемые результаты.
import pandas data = pandas.read_csv("https://modcom.co.ke/datasets/iris.csv") print(data)
Все данные, имеющиеся в нашем файле, будут распечатаны, как показано ниже. (После нажатия черной кнопки воспроизведения от Colab)
При работе с моделями машинного обучения вам необходимо очистить данные, проверив наличие нулей, прежде чем начинать обучение. Итак, мы проверим, существуют ли какие-то нулевые данные для нашего набора данных. Мы напишем код для проверки и суммирования всех нулей в наших данных, если они есть. Добавьте это в новую ячейку в Colab, нажав Вставить - ›Ячейка кода.
data.isnull().sum() # check empty and sum by colm
4. Давайте попробуем проанализировать наши данные в основных терминах, например, количество, среднее, минимальное, максимальное, стандартное и дисперсия. Это просто, чтобы дать нам представление о том, какие данные у нас есть по оценке. Вставьте новую ячейку кода и введите код ниже.
# basic stats data.describe()
5. Следующим шагом является разделение данных на две части: прогнозирующие и прогнозируемые / целевые. Они будут представлены X и Y.
# Step 1: Split to X, Y # X reprents the predictors/features/inputs # Y predicted - target/output array = data.values X = array[:, 0: 4] # sepallength sepalwidth petallength petalwidth, - 1 Y = array[:, 4] # class
Обучим модель!
6. Для обучения нашей модели мы собираемся использовать одну из лучших библиотек, называемую scikit-learn, это будет иметь фундаментальное значение для помощи в выполнении классификации, регрессии, кластеризации и выбора модели. Для получения дополнительной информации проверьте здесь https://scikit-learn.org/stable/, мы добавим новую ячейку и импортируем sklearn, в частности, модуль выбора модели.
Основываясь на информации, которая у нас есть выше, (X, Y) мы разделим наши данные на две части, 70% и 30%. Мы обучим эти 70%, чтобы сделать нашу модель более интеллектуальной, и использовать оставшиеся 30%, которые наша модель не видела, и она должна быть в состоянии получить их точно. Для каждого из наших разделенных данных у нас будут X_train, X_test, Y_train, Y_test и использовать выбор модели для обучения. мы будем использовать случайное состояние 42, чтобы увеличить количество точных прогностических анализов.
from sklearn import model_selection X_train, X_test, Y_train, Y_test = model_selection.train_test_split(X, Y, test_size=0.30, random_state=42)
Мы собираемся провести классификационное машинное обучение, цель - категориальная переменная. Под этим я подразумеваю, что мы предоставим любую заданную дату образца цветка, и программа должна иметь возможность сказать мне, какой цветок соответствует информации. Я перечислю несколько классификаторов, чтобы помочь вам провести анализ вышеуказанных данных. Добавьте новую ячейку и импортируйте следующие модули из sklearn. Мы будем использовать только один из них, но, по крайней мере, будем знать об остальных.
from sklearn.tree import DecisionTreeClassifier from sklearn.neighbors import KNeighborsClassifier from sklearn.naive_bayes import GaussianNB from sklearn.ensemble import RandomForestClassifier from sklearn.ensemble import GradientBoostingClassifier from sklearn.linear_model import LogisticRegression from sklearn.svm import SVC # Its a classifiction , the target is categorical var
Мы будем использовать GaussianNB, потому что это относительно точный классификатор, и поэтому он будет точно определять правильный цветок без каких-либо сбоев.
Мы также можем сделать резервную копию нашей модели в файл SAV для будущего прогноза, поэтому мы импортируем библиотеку pickle, которая будет за это отвечать. Затем мы подгоним классификатор модели (GaussianNB) с X_train и Y_train для классификации. Приведенный ниже код создает новый файл с именем finalized_model.sav внутри файла с именем sample_data (sample_data / finalized_model.sav) и сохраняет там модель.
model = GaussianNB() model.fit(X_train, Y_train) import pickle # save the model to disk filename = 'sample_data/finalized_model.sav' pickle.dump(model, open(filename, 'wb')) loaded_model = pickle.load(open(filename, 'rb'))
Пора протестировать сохраненную модель !!
Затем мы тестируем сохраненную модель, получая прогнозы выборки (X_test) против ожидаемого Y_test.
# Step 4 : test the model predictions = loaded_model.predict(X_test) print('Model Predicted ', predictions) print('Expected ', Y_test)
Вот как будет выглядеть ваш прогноз.
Как мы проверяем точность прогнозов?
Чтобы проверить правильность вашей модели, мы используем оценку точности от sklearn. Наша модель должна иметь точность не менее 70%, чтобы мы считали ее верной. Распечатаем отчеты о классификации, матрицу неточностей и метрики.
# Step 5: check accuracy from sklearn.metrics import accuracy_score print ('Accuracy ', accuracy_score(Y_test, predictions)) from sklearn.metrics import classification_report print(classification_report(Y_test, predictions)) from sklearn.metrics import confusion_matrix print(confusion_matrix(Y_test, predictions))
Бум !!, наша точность составляет 98%, что является хорошим признаком, поэтому мы можем использовать нашу модель, чтобы предсказать, какие параметры цветов у нас есть.
Пора предсказать неизвестный цветок разных размеров, чтобы предсказать его точное название цветка. У нашего цветка будет следующее:
длина чашелистика, ширина чашелистика, длина лепестка, ширина лепестка и наша задача - точно определить его класс.
цветок = [[1.3, 1.4, 1.4, 1.5], [3.4,2.3,3.4, 3.4]]
flower = [[1.3, 1.4, 1.4, 1.5],[3.4,2.3,3.4, 3.4]] predicted = model.predict(flower) print('The flower are likely to be ', predicted)
Попробуйте использовать этот образец модели с вашими собственными данными, разрешив ввод с консоли, так же, как вы поступили бы с python, используя «input ()».
flower = [[float(input('Sepal le')), float(input('Sepal wi')), float(input('Petal le')), float(input('Petal win'))]] predicted = model.predict(flower) print('The flower are likely to be ', predicted)
Ваше задание!
Нанесите на график результаты любых проницательных данных, полученных из этого руководства. Я дам вам подсказку, как нарисовать и построить график в Colab.
Поздравляю, вы так далеко зашли. В следующей части мы проанализируем твиты на основе положительных или отрицательных отзывов на основе хэштега.
Тогда увидимся.