def ridge_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 try
clf = linear_model.Ridge(alpha = 10000)
clf.fit (Xtrain, ytrain)
coeffients = clf.coef_
print "train score", clf.score(Xtrain,ytrain)
print "test score", clf.score(Xtest,ytest)
# manual calculate train accuracy
train_results = clf.predict(Xtrain)
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]) == round(ytrain[i]):
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
评论列表
文章目录