gpt4 book ai didi

python - 即使使用 random_state,每次运行代码时也会有不同的值

转载 作者:太空宇宙 更新时间:2023-11-03 15:30:43 25 4
gpt4 key购买 nike

每次运行此代码时,我都会得到不同的 print 语句值。我很困惑为什么要这样做,因为我特别包含了训练/测试分割的 random_state 参数。 (顺便说一句,我希望我应该对数据进行编码;否则它会给出“ValueError:无法将字符串转换为 float ”)。

df = pd.read_csv('http://archive.ics.uci.edu/ml/machine-learning-databases/car/car.data',
names=['buying', 'maint', 'doors', 'persons',
'lug_boot', 'safety', 'acceptability'])

# turns variables into numbers (algorithms won't let you do it otherwise)
df = df.apply(LabelEncoder().fit_transform)
print(df)

X = df.reindex(columns=['buying', 'maint', 'doors', 'persons',
'lug_boot', 'safety'])
y = df['acceptability']


X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)

print(X_train)

# decision trees classification
clf = tree.DecisionTreeClassifier(criterion='entropy')
clf = clf.fit(X_train, y_train)

y_true = y_test
y_pred = clf.predict(X_test)

print(math.sqrt(mean_squared_error(y_true, y_pred)))

最佳答案

DecisionTreeClassifier 还采用 random_state 参数:http://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html

您所做的只是确保训练/测试分割是可重复的,但分类器还需要确保每次运行时它自己的种子都是相同的

更新

感谢@Chester VonWinchester 指出:https://github.com/scikit-learn/scikit-learn/issues/8443由于 sklearn 的实现选择,max_features= None 可能是不确定的,即使它应该意味着考虑所有功能。

上面的链接中有更多信息和讨论。

关于python - 即使使用 random_state,每次运行代码时也会有不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42909617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com