为啥模型的准确性会发生变化?
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/…以上是关于为啥模型的准确性会发生变化?的主要内容,如果未能解决你的问题,请参考以下文章