Полиномиальная регрессия с использованием Turicreate

Опубликовано: 16 Июля, 2021

В этой статье мы обсудим реализацию полиномиальной регрессии с помощью Turicreate. Полиномиальная регрессия: полиномиальная регрессия - это форма регрессионного анализа, которая моделирует отношения между зависимым, скажем, y, и независимой переменной, например, x, как полином n-й степени. Это выражается как:

y= b0+b1x1+ b2x12+ b2x13+…… bnx1n

[where b0, b1, b2, …… bn are regression coefficients]

Итак, давайте изучим эту концепцию на практике.

Шаг 1: Импортируйте важные библиотеки и сгенерируйте очень небольшой набор данных с помощьюSArray и SFrame в turicreate, который мы собираемся использовать для выполнения полиномиальной регрессии.

Python3




# importing required python libraries
import turicreate
import matplotlib.pyplot as plt
import random
  
# Generating datapoints
X = [data for data in range(1, 21)]
Y = [random.randrange(100, 1000, 1) for data in range(20)]
  
# Creating Sarrays from the generated data points
Xs = turicreate.SArray(X, dtype=float)
Ys = turicreate.SArray(Y, dtype=float)
  
print(f"""Xs : {Xs}
-------------------------------------------------------------------------------------------
Ys : {Ys}""")

Выход:

Шаг 2: Построение сгенерированных данных

Python3




# plotting the generated data
plt.scatter(Xs, Ys)
plt.show()

Шаг 3: Создайте SFrame, содержащий вход, его polynomial_degrees и выход, чтобы соответствовать нашей регрессионной модели.

Python3






# Creating an Sframe where all the inputs and the polynomial degree and output
def createSframe(inputs, pol_degree):
datapoints = turicreate.SFrame({ 'x1' : inputs})
for degree in range ( 2 , pol_degree + 1 ):
datapoints[f 'x{degree}' ] = datapoints[f 'x{degree-1}' ] * datapoints[ 'x1' ]
return datapoints
# Creating a SFrame with polynomial degree 20
data_points = createSframe(Xs, 20 )
data_points[ 'y' ] = Ys
# showing the first 10 entries in the SFrame
data_points.head()

Шаг 4: Подгонка полиномиальной регрессии к сгенерированному набору данных.

Python3




# Polynomial Regression
features = [f 'x{i}' for i in range ( 1 , 21 )]
poly_model = turicreate.linear_regression.create(
data_points, features = features, target = 'y' )

Шаг 5: Прогнозирование результата с использованием подобранной модели и сохранение результата в SFrame.

Python3




# predicting the some data
# Generating test datapoints
test_X = [random.randrange( 1 , 60 , 1 ) for data in range ( 20 )]
test_Xs = turicreate.SArray(X, dtype = float )
test_data = createSframe(test_Xs, 5 )
data_points[ 'predicted_y' ] = poly_model.predict(test_data)
data_points.head()

Шаг 6. Измерение точности нашего предсказанного результата

Python




# Measuring the accuracy
# Generating test datapoints
test_X = [random.randrange( 1 , 60 , 1 ) for data in range ( 20 )]
test_Xs = turicreate.SArray(X, dtype = float )
test_data = createSframe(test_Xs, 20 )
poly_model.evaluate(data_points)

Шаг 7: Визуализация результатов полиномиальной регрессии с использованием графика рассеяния и линейного графика входных данных и прогнозируемого результата.

Python3




plt.scatter(data_points[ 'x1' ], data_points[ 'y' ])
plt.plot(data_points[ 'x1' ], data_points[ 'predicted_y' ])
plt.show()

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.