Skip to content

Instantly share code, notes, and snippets.

@joseph-allen
Last active April 29, 2019 11:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save joseph-allen/46a3c364b115d733a825133ed768c455 to your computer and use it in GitHub Desktop.
Save joseph-allen/46a3c364b115d733a825133ed768c455 to your computer and use it in GitHub Desktop.
Quickly train a polynomial
import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures
from sklearn.metrics import mean_absolute_error
def train_polynomial(df, train_upto,train_degree):
# build Polynomial features up to degree train_degree
p = PolynomialFeatures(degree=train_degree).fit(df[['dv','psi','temp1','temp2']])
features = pd.DataFrame(p.transform(df[['dv','psi','temp1','temp2']]), columns=p.get_feature_names(df[['dv','psi','temp1','temp2']].columns))
# join our target column with trained features
train = pd.concat([df['target'], features], axis=1)
train = train.drop(columns='1')
# Train on these variables
X = train.loc[:, train.columns != 'target'][:train_upto]
# To match this variable
y = pd.DataFrame(train['target'][:train_upto])
Poly_reg = LinearRegression(fit_intercept=False).fit(X, y)
Poly_reg.score(X, y)
print('mean absolute error train', mean_absolute_error(df['target'][:train_upto],Poly_reg.predict(train.loc[:, train.columns != 'target'])[:train_upto], multioutput='raw_values'))
print('mean absolute error test', mean_absolute_error(df['target'][train_upto:],Poly_reg.predict(train.loc[:, train.columns != 'target'])[train_upto:], multioutput='raw_values'))
df['predict_poly_' + str(train_degree)] = Poly_reg.predict(train.loc[:, train.columns != 'target', ])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment