Запрограммируйте свою собственную модель машинного обучения

Мы собираемся создать простую программу машинного обучения (модель), используя язык программирования под названием Python и контролируемый алгоритм обучения под названием Линейная регрессия из sklearn библиотека (также известная как scikit-learn). Мы создадим набор обучающих данных из псевдослучайных целых чисел в качестве входных с помощью библиотеки Python Random и создадим нашу собственную функцию для вывода обучающих данных, используя эти случайные целочисленные значения в качестве входных. Затем мы обучим нашу модель на вновь созданном наборе данных и, наконец, протестируем нашу модель на одном примере, чтобы увидеть, насколько хорошо наша модель работает, чтобы предсказать / дать ожидаемый результат.

Шаг 0: установите Python версии 3

https://realpython.com/installing-python/

Шаг 1. Установите Scikit-Learn

Сначала нам нужно установить нашу зависимость, библиотеку Python s cikit-learn (sklearn), которая представляет собой бесплатную библиотеку машинного обучения для языка программирования Python. Библиотека random является частью стандартных библиотек Python, поэтому нам не нужно ее устанавливать, она уже доступна для нас!

pip install scikit-learn

Шаг 2. Создайте набор данных для обучения

Обычно, если у вас есть набор данных, вам нужно разделить его на набор для обучения, набор для проверки и набор для тестирования. Поскольку это простой пример, мы создаем собственный обучающий набор для обучения нашей модели линейной регрессии. Обучающий набор будет содержать входные и ожидаемые выходные значения набора данных, на котором я хочу обучить модель. На входе будут случайные целочисленные значения, созданные библиотекой Random, мы будем использовать метод randint (a, b), который возвращает случайное целое число N такое, что a <= N <= b. Результат будет определяться функцией, которую мы создадим.

Напомним, функция, обычно называемая 'f', принимает какое-то значение ввода / параметра, обычно называемое 'x', и выдает какое-то выходное значение, такое, что f (x) = грамм. Функция, которую я создам, будет иметь несколько параметров, не только "x", но и "x", "y". , и вместо этого 'z', так что мы получим следующую функцию.

f(x,y,z) = 10x + 2y + 3z = g

Пример того, как работает эта функция. Если бы у нас были значения x = 1, y = 2, z = 20, тогда y было бы равно 74, как показано ниже:

f(1,2,20) = 10(1) + 2(2) + 3(20) = 74

Пример тренировочного набора:

Вход = Характеристики
Выход = Цели

Код для создания обучающего набора:

# Import the libraries
from random
from sklearn.linear_model import LinearRegression
# Create an empty list for the feature data set 'X' and the target data set 'y'
feature_set = []
target_set= []
# get the number of rows wanted for the data set
number_of_rows = 200
# limit the possible values in the data set
random_number_limit = 2000
#Create the training data set
#Create and append a randomly generated data set to the input and output
for i in range(0,number_of_rows):
  x = random.randint(0, random_number_limit)
  y = random.randint(0, random_number_limit)
  z = random.randint(0, random_number_limit)
#Create a linear function for the target data set 'y'
function = (10*x) + (2*y) + (3*z)
feature_set.append([x,y,z])
target_set.append(function)

Шаг 3. Обучите нашу модель линейной регрессии

Затем мы будем использовать метод LinearRegression () из библиотеки Python scikit-learn для обучения и создания нашей модели. Эта модель попытается «смоделировать» функцию, которую мы создали для обучающего набора данных.

Примечание. Когда мы «подгоняем» функцию, это просто другое слово для обучения.

model = LinearRegression() #Create a linear regression object/model
model.fit(feature_set, target_set) 

Шаг 4: Протестируйте модель линейной регрессии

Теперь давайте посмотрим, может ли наша функция LinearRegression аппроксимировать созданную нами функцию и дать нам точный прогноз (правильный ответ).

Тестовый набор = [[8, 10, 0]]

Результат должен быть 8 * 10 + 10 * 2 + 0 * 3 = 100. Посмотрим, что у нас получилось ...

test_set = [[8,10,0]] 
prediction = model.predict(test_set)
print('Prediction:'+str(prediction)+'\t'+ 'Coefficient:'+str(model.coef_))

Прогноз: [100.] Коэффициенты: [8. 10. 0.]

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

Если вам также интересно узнать немного больше о машинном обучении, чтобы сразу приступить к работе с проблемами и примерами, я настоятельно рекомендую вам ознакомиться с Практическое машинное обучение с помощью Scikit-Learn и TensorFlow: концепции, инструменты и методы для Создавайте интеллектуальные системы .

Спасибо за прочтение этой статьи, надеюсь, она будет вам полезна! Если вам понравилась эта статья и вы нашли ее полезной, пожалуйста, оставьте несколько аплодисментов, чтобы выразить свою признательность. Продолжайте учиться, и если вы хотите больше видео по математике, информатике, программированию и анализу алгоритмов, посетите и подпишитесь на мои каналы YouTube (randerson112358 и compsci112358).