Полиномиальная регрессия не дала правильной гипотезы - PullRequest
0 голосов
/ 31 мая 2018

Код PFB, здесь X - количество уровней должностей (т. Е. Уровень 1, уровень 2 ..), а y - диапазон зарплаты.Полиномиальная регрессия не дает линии наилучшего соответствия, а также как я могу определить для X = 20. Пожалуйста, предложите:)

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

X = [[ 1],[ 2],[ 3],[ 4],[ 5],[ 6],[ 7],[ 8],[ 9],[10]]
y = [45000,50000,60000,80000,110000,150000,200000,300000,500000,1000000]

from sklearn.linear_model import LinearRegression


from sklearn.preprocessing import PolynomialFeatures

poly_reg = PolynomialFeatures(degree = 2)
X_poly = poly_reg.fit_transform(X)


linearReg_2 = LinearRegression()
linearReg_2.fit(X_poly,y)

# plot polynomial linear regression
plt.scatter(X,y, color = "red")
plt.plot(X,linearReg_2.predict(X_poly), color = "blue")
plt.show()

1 Ответ

0 голосов
/ 31 мая 2018

Вы можете попробовать увеличить степень до 3 или 4 для более правильного соответствия.

poly_reg = PolynomialFeatures(degree = 3)

enter image description here

poly_reg = PolynomialFeatures(degree = 4)

enter image description here

И для прогнозирования нового значения вынужно пропустить его через тот же poly_reg объект и затем использовать linearReg_2.predict()

как-то так:

X_new = [[20]]

# Observe that I used transform() and not fit_transform()
X_new_poly = poly_reg.transform(X_new)

y_new = linearReg_2.predict(X_new_poly)
...