multi_reg.py 文件源码

python
阅读 23 收藏 0 点赞 0 评论 0

项目:aq_weather 作者: eliucidate 项目源码 文件源码
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
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号