%matplotlib inline
data = loadtxt("kankore.csv",delimiter=",")
data
array([[ 0.00000000e+00, 5.00000000e+03], [ 4.00000000e+00, 1.00000000e+04], [ 2.20000000e+01, 2.00000000e+04], [ 3.90000000e+01, 3.00000000e+04], [ 4.50000000e+01, 4.00000000e+04], [ 5.00000000e+01, 5.00000000e+04], [ 5.40000000e+01, 6.00000000e+04], [ 5.90000000e+01, 7.50000000e+04], [ 7.00000000e+01, 7.50000000e+04], [ 7.20000000e+01, 1.00000000e+05], [ 7.90000000e+01, 1.20000000e+05], [ 8.40000000e+01, 1.60000000e+05], [ 8.70000000e+01, 2.00000000e+05], [ 1.00000000e+02, 2.80000000e+05], [ 1.02000000e+02, 3.00000000e+05], [ 1.12000000e+02, 6.50000000e+05], [ 1.42000000e+02, 9.50000000e+05], [ 1.73000000e+02, 1.14000000e+06], [ 2.57000000e+02, 1.50000000e+06], [ 3.05000000e+02, 1.70000000e+06], [ 3.96000000e+02, 2.00000000e+06]])
x_act= data[:,0]
x_act
array([ 0., 4., 22., 39., 45., 50., 54., 59., 70., 72., 79., 84., 87., 100., 102., 112., 142., 173., 257., 305., 396.])
y_act = data[:,1]
import pylab as pl
pl.plot(x_act, y_act)
[<matplotlib.lines.Line2D at 0x10d0a7450>]
from sklearn.linear_model import Ridge
degree = 5
ridge = Ridge()
ridge.fit(np.vander(x_act, degree + 1), y_act)
Ridge(alpha=1.0, copy_X=True, fit_intercept=True, max_iter=None, normalize=False, solver='auto', tol=0.001)
x_pred = x_act
x_pred2 = array([400, 450, 500])
x_pred = hstack([x_pred, x_pred2])
x_pred
array([ 0., 4., 22., 39., 45., 50., 54., 59., 70., 72., 79., 84., 87., 100., 102., 112., 142., 173., 257., 305., 396., 400., 450., 500.])
pl.plot(x_pred, ridge.predict(np.vander(x_pred, degree + 1)),
label="degree %d" % degree)
[<matplotlib.lines.Line2D at 0x10e534c10>]
ridge.predict(np.vander(x_pred, degree + 1))
array([ 52125.60313607, 27247.20053156, -34956.40239624, -26854.83993328, -10468.52639396, 8029.64951834, 25804.46966244, 51517.00425806, 120485.66017525, 134689.65643936, 187986.865246 , 229171.57815363, 255001.96411426, 375122.76891706, 394599.55182788, 494966.71584137, 809946.63503406, 1119014.89312694, 1608270.27241016, 1637737.09592139, 2005562.18440967, 2065596.50944486, 3517286.65328894, 7004381.43211605])
pl.scatter(x_pred, ridge.predict(np.vander(x_pred, degree + 1)), label="training points")
<matplotlib.collections.PathCollection at 0x10cc54b90>