首页 > 解决方案 > 如何在python中导出交叉验证的结果

问题描述

我正在使用 sklearn 来训练我的模型。但我想将结果导出到 excel 文件以供我自己计算。这是我的代码

data = pd.read_excel("TN QSAR.xlsx")
X = data.drop(['label','My ID','Smiles','pEC50'], axis=1)
y = data['pEC50']
model = linear_model.LinearRegression() 
cv = KFold(n_splits=3)
i = 1
for train,test in cv.split(X):
    model.fit(X[train], y[train])
    y_pred = model.predict(X)
    y_pred_test = model.predict(X[test])
    y_pred_train = model.predict(X[train])
    y_pred_df = pd.DataFrame(y_pred, columns = ['y_pred'], index = X.index.copy())
    y_pred_train_df = pd.DataFrame(y_pred_train, columns = ['y_pred_train'], index = X[train].index.copy())
    y_pred_test_df = pd.DataFrame(y_pred_test, columns = ['y_pred_test'], index = X[test].index.copy())
    dftraintest = pd.concat([y,y_pred_df,y_pred_train_df,y_pred_test_df],axis=1)
    i = i+1
    dftraintest.to_excel('dftraintest',i,'.xlsx')

我该如何解决?

标签: pythonpandasscikit-learn

解决方案


问题在于您传递数据的方式。改变X[train]to X.loc[train, :], y[train]toy.loc[train]

除此之外,我不确定您将 url 参数传递给的方式是否to_excel(url)正确。如果这也给出了错误,请尝试:

  1. 'dftraintest' + str(i) +'.xlsx'或者
  2. 'dftraintest {}{}'.format(i, '.xlsx')

推荐阅读