Я создал простую модель линейной и полиномиальной регрессии, чтобы получить конкретное значение из графика (или для прогнозирования, но, поскольку я не могу получить конкретное значение, то как я могу прогнозировать; -;)
В Python 3.x на spyder ver 3.3.Я попытался изменить мой массив, который работает для линейной регрессии и дает точный результат, но для моей полиномиальной регрессии я либо получаю ошибку, либо результат, который отличается от ожидаемого результата
#importing of libs
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
# Retrieving dataset
dataset = pd.read_csv('Position_salaries.csv')
# Seperating the indpendant variable colum from dependant column
x = dataset.iloc[:, 1:-1].values
y = dataset.iloc[:, 2].values
# Fitting in linear regression
from sklearn.linear_model import LinearRegression
lin_reg = LinearRegression()
lin_reg.fit(x,y)
# Fitting of a poly model
from sklearn.preprocessing import PolynomialFeatures
poly = PolynomialFeatures(3)
x_poly = poly.fit_transform(x)
# fit poly regression
lin_reg2 = LinearRegression()
lin_reg2.fit(x_poly, y)
# Visualization of linear regression
plt.scatter(x,y, color = 'red')
plt.plot(x, lin_reg.predict(x))
plt.show()
# Visualisation of poly regression
x_grid = np.arange(min(x), max(x), 0.1)
x_grid = np.reshape(x_grid, (len(x_grid),1))
plt.scatter(x,y, color = 'red')
plt.plot(x_grid, lin_reg2.predict(poly.fit_transform(x_grid)))
plt.show()
# Predicting with linear regression model
value_needed = np.array(6.5).reshape(-1,1)
lin_reg.predict(np.array(6.5).reshape(-1,1))
#predicting with polynomial regression model
lin_reg2.predict(poly.fit_transform(value_needed))
Для линейной модели этот результат является точным -
value_needed = np.array(6.5).reshape(-1,1)
lin_reg.predict(np.array(6.5).reshape(-1,1))
Out[17]: array([330378.78787879])
, тогда как для полинома я получаю -
lin_reg2.predict(poly.fit_transform(value_needed))
Out[18]: array([133259.46969697])
, что далекофактический результат (158862.45265)
Мой код и набор данных