import time
import matplotlib.pyplot as plt
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures
import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
rng = np.random.RandomState(1)
X = np.linspace(0, 50, 100000)
X = X.reshape(50000, 2)
y = np.sin(X[:,0])+X[:,1]*np.random.rand(1)
from sklearn.pipeline import make_pipeline
poly_model = make_pipeline(PolynomialFeatures(20), LinearRegression(n_jobs=2))
tm = time.time()
poly_model.fit(X, y)
tm_train = time.time() - tm
tm = time.time()
y_pred = poly_model.predict(X)
tm_predict = time.time() - tm
print("Training Time: %4fs" %tm_train)
print("Prediction Time: %4fms" %(tm_predict*1000))
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.plot(X[:,0].ravel(), X[:,1].ravel(), y.ravel(), 'b.')
ax.plot(X[:,0].ravel(), X[:,1].ravel(), y_pred.ravel(), 'r')
plt.show()
aW1wb3J0IHRpbWUKaW1wb3J0IG1hdHBsb3RsaWIucHlwbG90IGFzIHBsdAppbXBvcnQgbnVtcHkgYXMgbnAKZnJvbSBza2xlYXJuLmxpbmVhcl9tb2RlbCBpbXBvcnQgTGluZWFyUmVncmVzc2lvbgpmcm9tIHNrbGVhcm4ucHJlcHJvY2Vzc2luZyBpbXBvcnQgUG9seW5vbWlhbEZlYXR1cmVzCmltcG9ydCBtYXRwbG90bGliIGFzIG1wbApmcm9tIG1wbF90b29sa2l0cy5tcGxvdDNkIGltcG9ydCBBeGVzM0QKCnJuZyA9IG5wLnJhbmRvbS5SYW5kb21TdGF0ZSgxKQpYID0gbnAubGluc3BhY2UoMCwgNTAsIDEwMDAwMCkKWCA9IFgucmVzaGFwZSg1MDAwMCwgMikKeSA9IG5wLnNpbihYWzosMF0pK1hbOiwxXSpucC5yYW5kb20ucmFuZCgxKQoKZnJvbSBza2xlYXJuLnBpcGVsaW5lIGltcG9ydCBtYWtlX3BpcGVsaW5lCnBvbHlfbW9kZWwgPSBtYWtlX3BpcGVsaW5lKFBvbHlub21pYWxGZWF0dXJlcygyMCksIExpbmVhclJlZ3Jlc3Npb24obl9qb2JzPTIpKQoKdG0gPSB0aW1lLnRpbWUoKQpwb2x5X21vZGVsLmZpdChYLCB5KQp0bV90cmFpbiA9IHRpbWUudGltZSgpIC0gdG0KCnRtID0gdGltZS50aW1lKCkKeV9wcmVkID0gcG9seV9tb2RlbC5wcmVkaWN0KFgpCnRtX3ByZWRpY3QgPSB0aW1lLnRpbWUoKSAtIHRtCgpwcmludCgiVHJhaW5pbmcgVGltZTogJTRmcyIgJXRtX3RyYWluKQpwcmludCgiUHJlZGljdGlvbiBUaW1lOiAlNGZtcyIgJSh0bV9wcmVkaWN0KjEwMDApKQoKZmlnID0gcGx0LmZpZ3VyZSgpCmF4ID0gZmlnLmdjYShwcm9qZWN0aW9uPSczZCcpCgpheC5wbG90KFhbOiwwXS5yYXZlbCgpLCBYWzosMV0ucmF2ZWwoKSwgeS5yYXZlbCgpLCAnYi4nKQpheC5wbG90KFhbOiwwXS5yYXZlbCgpLCBYWzosMV0ucmF2ZWwoKSwgeV9wcmVkLnJhdmVsKCksICdyJykKcGx0LnNob3coKQ==