Форум сайта python.su
Добрый день. Недавно столкнулся с задачей регрессии. Написал 2 варианта программы(ну мало ли мб ошибся), но при итоговом сравнении тех результатов, которые должны получится и полученных с помощью регрессии у меня проценты какие-то жуткие получаются.
Примеры программ
import pandas as pd import xgboost as xgb from sklearn.metrics import confusion_matrix, mean_squared_error from sklearn.metrics import mean_absolute_error,mean_squared_error,median_absolute_error df = pd.read_csv('zab_work2.csv',";",header=None) X_train = df.drop(17,axis=1) Y_train = df[17] T_train_xgb = xgb.DMatrix(X_train, Y_train) params = {"objective": "reg:linear", "booster":"gblinear"} gbm = xgb.train(dtrain=T_train_xgb,params=params) test_data = pd.read_csv('new_work2.csv',";",header=None) print(test_data) X_test = test_data.drop(17,axis=1) Y_test = test_data[17] Y_pred = gbm.predict(xgb.DMatrix(X_test)) test_erorr = mean_squared_error(Y_test,Y_pred); print("Accuracy: %.2f%%" % (test_erorr * 100.0)) accuracy = mean_absolute_error(Y_test,Y_pred) print("Accuracy: %.2f%%" % (accuracy * 100.0)) accuracy2 = median_absolute_error(Y_test, Y_pred) print("Accuracy: %.2f%%" % (accuracy2 * 100.0))
import numpy import sklearn import xgboost as xgb from sklearn.metrics import confusion_matrix, mean_squared_error dataset = numpy.genfromtxt('zab_work2.csv', delimiter=";") dataset2 = numpy.genfromtxt('new_work2.csv', delimiter=";") # split data into X and y X = dataset[:,[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]] Y = dataset[:,[17]] T_train_xgb = xgb.DMatrix(X, Y) x_2 = dataset2[:,[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]] y_2 = dataset2[:,[17]] params = {"objective": "reg:linear", "booster":"gblinear"} gbm = xgb.train(dtrain=T_train_xgb,params=params) Y_pred = gbm.predict(xgb.DMatrix(x_2)) test_erorr = mean_squared_error(y_2,Y_pred); print("Accuracy: %.2f%%" % (test_erorr * 100.0)) accuracy = mean_absolute_error(y_2,Y_pred) print("Accuracy: %.2f%%" % (accuracy * 100.0)) accuracy2 = median_absolute_error(y_2,Y_pred) print("Accuracy: %.2f%%" % (accuracy2 * 100.0))
Отредактировано kordDem (Май 18, 2017 15:05:44)
Офлайн