Как мне выбрать random_state, чтобы получить точные последствия - PullRequest
0 голосов
/ 24 марта 2019

Когда я использую random_state=10.y_test [1] сработал, а y_test [2 или 3 или ...] - нет.Поэтому я попытался использовать другое random_state, например, 42 или 20, но после изменения random_state.y_test [10] тоже не сработало.

Я не уверен, что проблема связана с y_test или random_state.И я хочу попытаться выяснить, почему изменение значения random_state также меняет точность r2_score.

Большое спасибо

x = df[['mileage','engine_power','feature_1','feature_2','feature_3','feature_4','feature_5','feature_6','feature_7','feature_8','car_type']]
y = df['price']

x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.2,random_state=10)

lr =LinearRegression()
lr.fit(x_train,y_train)
predict_lr = lr.predict(x_test)

print('real value y_test[1]:'+str(y_test[1])+'  predict:'+str(lr.predict(x_test.iloc[[1],:])))
print('real value y_test[2]:'+str(y_test[2])+'  predict:'+str(lr.predict(x_test.iloc[[2],:])))
print('scort:',lr.score(x_test,y_test))
print('r2 score:',r2_score(y_test,predict_lr))

>>>real value y_test[1]:69700  predict:[12659.21124934]
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-48-e556e02e9019> in <module>
      3 predict_lr = lr.predict(x_test)
      4 print('real value y_test[1]:'+str(y_test[1])+'  predict:'+str(lr.predict(x_test.iloc[[1],:])))
----> 5 print('real value y_test[2]:'+str(y_test[5])+'  predict:'+str(lr.predict(x_test.iloc[[2],:])))
      6 
      7 print('scort:',lr.score(x_test,y_test))
KeyError: 5
...