-3

每次我运行相同的代码来训练数据集,预测测试集上的值,然后计算相关系数和 MSE 值时,这些值发生变化是否正常?为什么会这样?

import pandas as pd
from sklearn import tree
from scipy.stats import linregress

training = pd.read_csv('csvfile1.csv')    #training data set
target = pd.DataFrame(training, columns=['target_column'])  #target 
testing = pd.read_csv('csvfile2.csv')    #test set loaded from a different file
true = pd.DataFrame(testing, columns=['predicted_value'])  #for comparison after predicting the target 
X_train = training
target_vec = target['target_column']
Y_test = training
regression = tree.DecisionTreeRegressor(criterion='mse', splitter='best')
model = regression.fit(X_train, target_vec)
output = regression.predict(Y_test)  #predictions
print(linregress(output, true.predicted_value))   #printing out rvalue
4

1 回答 1

0

尝试使用这个:

import random random.seed(123)

数字并不重要,关键是,它每次都将伪随机生成器设置为相同的起点。

我的猜测是,您必须将数据随机分成训练集和测试集,而且每次都不同。下次向我们展示您的代码。你可能会因为不这样做而被否决。它还可以帮助我们帮助您。

于 2020-04-22T18:14:51.647 回答