Skip to content

Instantly share code, notes, and snippets.

@seaslee
Created September 4, 2013 10:17
Show Gist options
  • Save seaslee/6435194 to your computer and use it in GitHub Desktop.
Save seaslee/6435194 to your computer and use it in GitHub Desktop.
linear model example using scikit-learn
#! /usr/bin/env python
# -*- coding:utf-8 -*-
from sklearn import datasets
from sklearn import linear_model
from sklearn.metrics import mean_squared_error
##### load data and split into train and test ####
data_boston = datasets.load_boston()
data = data_boston.data
target = data_boston.target
train_ratio = 0.8
data_num = data.shape[0]
train_num = int(data_num * train_ratio)
train_data = data[:train_num,:]
test_data = data[train_num:,:]
train_target = target[:train_num]
test_target = target[train_num:]
#### train model and test ####
results = []
#### linear regression ####
reg_model = linear_model.LinearRegression()
reg_model.fit(train_data, train_target)
test_predict = reg_model.predict(test_data)
r1 = mean_squared_error(test_target, test_predict)
results.append(r1)
print 'linear regression, mse : %f' % r1
#### ridge regression ####
ridge_model = linear_model.RidgeCV(alphas=[1e-3,1e-2,1e-1,1e1,1e2])
ridge_model.fit(train_data, train_target)
test_predict = ridge_model.predict(test_data)
r2 = mean_squared_error(test_target, test_predict)
results.append(r2)
print 'ridge regression, mse : %f' % r2
#### lasso regression ####
lasso_model = linear_model.LassoCV(alphas=[1e-3,1e-2,1e-1,1e1,1e2])
lasso_model.fit(train_data, train_target)
test_predict = lasso_model.predict(test_data)
r3 = mean_squared_error(test_target, test_predict)
results.append(r3)
print 'lasso regression, mse : %f' % r3
#### elastic net regression ####
ela_model = linear_model.ElasticNetCV(alphas=[.01,.1,.3,.5,.7,.9,.95,.99,1])
ela_model.fit(train_data, train_target)
test_predict = ela_model.predict(test_data)
r4 = mean_squared_error(test_target, test_predict)
results.append(r4)
print 'elastic net regression, mse : %f' % r4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment