为啥模型的准确性会发生变化?

Posted

技术标签:

【中文标题】为啥模型的准确性会发生变化?【英文标题】:Why does the accuracy of the model change?为什么模型的准确性会发生变化? 【发布时间】:2020-11-06 08:47:41 【问题描述】:

我是机器学习领域的新手。我想知道一些事情..当我使用'random_state = 10'时,变量保持不变并且没有任何变化也不会影响模型的准确性..直到现在一切都很好..但是当我不使用它时,变量改变了,它改变了模型的准确性,现在变量不同了,但它们仍然在同一个数据框中,我认为准确性仍然是一样的..这就是机器学习中的工作方式吗?还是我错过了什么?这是我的代码。

X =df[["Mileage","Age(yrs)"]]
y=df["Sell Price($)"]

from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2)

from sklearn.linear_model import LinearRegression
clf=LinearRegression()

clf.fit(X_train,y_train)
clf.predict(X_test)
>>>array([ 38014.9266005 ,  14240.40458389,  33695.58936258,  29870.44475795])

y_test

>>>3  40000
   8  12000
   1  34000
   4  31500


clf.score(X_test,y_test)
>>>0.97343231831177046

【问题讨论】:

Here 是解释 【参考方案1】:

您提到的随机状态是来自 sklearn 模块的参数。它基本上告诉模块以特定方式拆分。通常使用随机状态 = 42。使用时,训练数据和测试数据以相同的方式拆分。当您希望其他人测试您的模型或每次都保持相同的拆分时,这非常有用。我建议你使用随机状态 = 42。

【讨论】:

感谢您的回答先生.. 但是 random_state=10,42 等之间有什么区别..?我在互联网上搜索过,但在技术上并没有改变任何东西 我不使用 random_state = 10。他们使用 0、1 或 42。这些数字只是随机函数的种子值。使用该数字,模块会拆分您的数据。如果您不指定它,则每次都会发生不同的拆分。你可以在这里阅读更多关于它们的信息——scikit-learn.org/dev/modules/generated/…

以上是关于为啥模型的准确性会发生变化?的主要内容,如果未能解决你的问题,请参考以下文章

当视图模型中的状态发生变化时,为啥路由的 Composable 会重新组合?

unity5怎样正确导入FBX,模型大小为啥会发生变化

unity5怎样正确导入FBX,模型大小为啥会发生变化

为啥在滚动过程中单元格的孩子的高度会发生变化?

随机状态值的变化会改变模型的准确性

为啥当我追加到其中的列表时,元组的内容会发生变化,但在更新变量时不会发生变化?