Skip to content

Instantly share code, notes, and snippets.

@binhngoc17
Created December 6, 2014 22:48
Show Gist options
  • Save binhngoc17/a8f22f021f38754fca61 to your computer and use it in GitHub Desktop.
Save binhngoc17/a8f22f021f38754fca61 to your computer and use it in GitHub Desktop.
Linear Regression
import sys
import numpy
import array
factors, numTraining = map(int, sys.stdin.readline().split(' '))
trainSets = []
for i in range(numTraining):
trainSets.append(map(float, sys.stdin.readline().split(' ')))
rows = numpy.array(trainSets)
rows_indxs = [[i] for i in range(numTraining)]
factor_indxs = [i for i in range(factors)]
# print rows_indxs
# print factor_indxs
y = rows[rows_indxs,[factors]]
x = rows[rows_indxs,factor_indxs]
zeros = numpy.zeros((numTraining, 1))
# training = numpy.hstack((zeros, x))
training = numpy.hstack((zeros, rows))
weights = [1 for i in range(factors + 1)]
def d_training_item(trainObs, weights):
predicted_y = sum([ weights[i] * trainObs[i] for i in range(factors)])
return abs(predicted_y - trainObs[factors]) / trainObs[factors]
def calc_d(weights, training):
return sum([d_training_item(trainObs, weights) for trainObs in training])
print calc_d(weights, training)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment