1.Что такое алгоритм прогнозирования?

Алгоритмы прогнозирования — это тип алгоритма машинного обучения, предназначенный для прогнозирования на основе наборов данных. Они анализируют данные и выявляют закономерности, которые можно использовать для прогнозирования будущих событий или результатов. Алгоритмы прогнозирования используются во многих областях, таких как маркетинг, финансы, здравоохранение и военные приложения. Чтобы использовать алгоритмы прогнозирования в Python, важно иметь полные и актуальные данные для вашей задачи. Потому что, если модель будет обучаться на нерелевантных данных, она не даст вам близких прогнозов. Чтобы подготовить данные для прогнозного моделирования, сначала необходимо удалить из набора данных все ненужные функции и поврежденные значения. Как только ваши данные будут очищены, вы сможете выбрать подходящий алгоритм для вашей задачи. Например, линейную регрессию можно использовать для линейных моделей. Затем вы должны обучить свой алгоритм на подмножестве ваших данных, обычно используя разделение между данными обучения и тестирования. Этот шаг позволяет компьютеру учиться на данных и выявлять закономерности. После обучения вы можете использовать алгоритм для прогнозирования. В Python вы можете написать свой алгоритм, используя библиотеку Scikit-learn. Важно отметить, что существует несколько типов алгоритмов прогнозирования, каждый из которых имеет свои сильные стороны и ограничения. Некоторые из алгоритмов будут приведены в следующих частях эссе.

2. Линейная регрессия

Линейная регрессия — это статистический метод, обеспечивающий линейную зависимость между двумя точками. Это простой алгоритм для кодирования, но если набор данных подходит для линейной регрессии, прогнозы будут близкими. Линейная регрессия соответствует уравнению: y = ax+b. Кроме того, независимых переменных может быть больше. Если независимых переменных больше, линейная регрессия называется множественной линейной регрессией. Уравнение соответствует множественной линейной регрессии: y = a0 + a1x1 + a2x2 +…….+ anxn.

Коды и пояснения к ним можно найти в Scikit-learn. В python сначала необходимо импортировать sklearn.linear_models. В этой библиотеке есть функция LinearRegression. Объект должен быть определен для вызова функции LinearRegression. Затем данные можно подгонять и делать прогнозы по этим данным. Коды простые:

from sklearn.linear_models import LinearRegression #where we import the function

lr = LinearRegression() #defining lr object to call LinearRegression
lr.fit(x_train,y_train) #Training our model with the data x_train and y_train

y_pred = lr.predict(x_test) #Make predictions on our data x_test 

Кроме того, данные и уравнение можно визуализировать с помощью библиотеки matplotlib.

3. Полиномиальная регрессия

Полиномиальная регрессия — это тип регрессионного анализа, в котором взаимосвязь между независимой переменной «x» и зависимой переменной «y» моделируется как полиномиальная функция n-й степени. Другими словами, вместо того, чтобы подбирать прямую линию через точки данных (как в линейной регрессии), полиномиальная регрессия может подгонять кривую к данным. Уравнение полиномиальной регрессии: y = a0 + a1x + a2x² +……….+anx^n. Эта регрессия полезна, когда отношения между данными не являются линейными. Кривая может быть подобрана к набору данных с помощью полиномиальной регрессии.

Полиномиальную регрессию можно просто написать на python. В sklearn.preprocessing есть функция PolynomialFeatures. С помощью этой функции будет легко кодировать полиномиальную регрессию. Коды:

from sklearn.preprocessing import PolynomialFeatures #importing the polynomial regression

poly_reg = PolynomialFeatures(degree=2) #Defining an object for calling PolynomialFeatures. The degree can be chosen.
x_train_poly = poly_reg.fit_transform(x_train) #We should fit and transform the x_train datas to polynomial
x_test_poly = poly_reg.transform(x_test) #We should transform the x_test datas to polynomial

from sklearn.linear_models import LinearRegression #importing the Linear Regression

lr = LinearRegression() #Defining a lr object to call LinearRegression
lr.fit(x_train_poly,y_train) #Training our model
y_pred = lr.predict(x_test_poly) #Making predictions on our dataset

4. Поддержка векторной регрессии

Регрессия опорных векторов широко используется в машинном обучении. Его можно использовать, когда существует нелинейная связь между зависимыми и независимыми переменными. Алгоритм ориентирован на поиск предела допуска. После того, как он находит маржу, он разделяет данные на группы. Наконец, он делает прогноз с использованием этих групп. В машинах опорных векторов есть некоторые функции ядра. Функции ядра используются для более эффективного применения этого метода. Некоторые функции ядра являются линейными, полиномиальными, rbf, сигмовидными и другими.

В python можно легко закодировать алгоритм регрессии опорных векторов. Scikit-learn включает в себя некоторые функции, связанные с машинами опорных векторов и регрессией опорных векторов. Коды:

from sklearn.preprocessing import StandardScaler #Importing our scaler

scaler = StandardScaler() #Defining scaler
x_train = scaler.fit_transform(x_train) #Fit transform our x_train data
x_test = scaler.transform(x_test) #Transform our x_test data
y_train = scaler.fit_transform(y_train) #Fit transform our y_train data

from sklearn.svm import SVR #Importing Support Vector Regression

sv_reg = SVR(kernel="rbf") #Defining our object to call SVR. Kernel function is rbf here. The default function is also rbf
sv_reg.fit(x_train,y_train) #Train our model
y_pred = sv_reg.predict(x_test) #Making predictions

5. Дерево решений

Дерево решений — популярный алгоритм машинного обучения. Как правило, он используется для классификации, но может использоваться и для прогнозирования. Алгоритм работает путем рекурсивного разделения данных на подмножества на основе значения выбранного признака, пока не будет достигнута максимальная глубина или критерий остановки. Разделения выбираются таким образом, чтобы минимизировать среднеквадратичную ошибку (MSE) или другую заданную метрику ошибки. В результате получается древовидная модель, которую можно использовать для прогнозирования новых данных. В процессе обучения алгоритм выбирает наилучшую функцию для разделения данных на основе уменьшения дисперсии или энтропии, которое обеспечивает разделение. Цель состоит в том, чтобы создать разбиения, которые производят однородные подмножества данных с похожими целевыми значениями.

Библиотека обучения Scikit имеет функцию регрессии дерева решений. В sklearn.tree есть функция DecisionTreeRegressor, которая используется для регрессии с деревом решений. Алгоритм регрессии дерева решений:

from sklearn.tree import DecisionTreeRegressor #Importing DecisionTreeRegressor

dtr = DecisionTreeRegressor() #Defining an object to call DecisionTreeRegressor()
dtr.fit(x_train,y_train) #Training our model
y_pred = dtr.predict(x_test) #Making predictions on x_test

6. Случайный лес

Случайный лес — это алгоритм, который можно использовать для регрессии. Это ансамблевый метод обучения. Ансамблевое обучение использует несколько алгоритмов обучения для достижения высокого успеха. Случайный лес использует деревья решений для обучения модели. В процессе обучения каждое дерево решений обучается на случайно выбранном подмножестве обучающих данных и случайном подмножестве признаков. Результатом модели является среднее значение прогнозов, сделанных всеми деревьями решений в лесу. Он включает в себя лучшую точность, повышенную стабильность и уменьшение переобучения. Это сильный алгоритм для использования.

Случайный лес можно просто закодировать на питоне. В библиотеке sklearn есть ансамбль для ансамблевого обучения. В sklearn.ensemble есть функция RandomForestRegressor. С помощью этой функции можно применить случайный лес. Коды:

from sklearn.ensemble import RandomForestRegressor #Importing RandomForestRegressor

rfr = RandomForestRegressor() #Defining an object to call RandomForestRegressor
rfr.fit(x_train,y_train) #Training our model
y_pred = rfr.predict(x_test) #Making prediction on our dataset

7. Заключение

В заключение, алгоритмы прогнозирования — это мощный инструмент, который можно использовать для точного прогнозирования будущих событий или результатов на основе исторических данных. Они являются важным компонентом машинного обучения и имеют множество приложений в самых разных областях. Используя возможности алгоритмов прогнозирования, многие организации могут принимать более обоснованные решения и получать конкурентные преимущества в своих отраслях, а также создавать надежные модели искусственного интеллекта. Алгоритмов предсказания больше. В этом эссе были показаны некоторые алгоритмы. Кроме того, алгоритмы включают больше информации и функций. Доступ ко всей информации и функциям можно получить на веб-сайте scikit Learn. Будущим читателям и исследователям рекомендуется искать scikitlearn и другие библиотеки, такие как pytorch, tensorflow и т. д.

8. Ссылки