def multireg(self,Xtrain,ytrain, Xtest, ytest):
self.normalize(Xtrain)
'''
# polynomial try
poly = PolynomialFeatures(degree=2)
Xtrain = poly.fit_transform(Xtrain)
Xtest = poly.fit_transform(Xtest)
'''
# normal clf fit
clf = linear_model.LinearRegression()
clf.fit (Xtrain, ytrain)
coeffients = clf.coef_
print "coefficients:", coeffients
print "intercept:", clf.intercept_
print "train score", clf.score(Xtrain,ytrain)
print "test score", clf.score(Xtest,ytest)
# manual calculate train accuracy
train_results = clf.predict(Xtrain)
print "first x:", Xtrain[0]
print "first result:", train_results[0]
correct = 0
for i in range(len(train_results)):
if round(train_results[i], 1) == round(ytrain[i], 1):
correct += 1
accuracy = correct * 1.0 / len(ytrain)
print "train accuracy: ", accuracy * 100, "%"
# cross validation
score = cross_validation.cross_val_score(clf, Xtrain, ytrain, scoring='mean_squared_error', cv = 5)
print "cross validation score: ", score
predict = cross_val_predict(clf, Xtrain, ytrain, cv = 5)
correct = 0
for i in range(len(predict)):
if round(predict[i], 1) == round(ytrain[i], 1):
correct += 1
accuracy = correct * 1.0 / len(ytrain)
print "cross validation accuracy: ", accuracy * 100, "%"
# manual calculate test accuracy
self.normalize(Xtest)
results = clf.predict(Xtest)
correct = 0
for i in range(len(results)):
if round(results[i], 1) == round(ytest[i], 1):
correct += 1
accuracy = correct * 1.0 / len(ytest)
print "test accuracy: ", accuracy * 100, "%"
return coeffients
评论列表
文章目录