小编jon*_*on 的帖子

如何将预测应用于 xgboost 交叉验证

经过一段时间的谷歌搜索后,我觉得这可能是一个荒谬的问题,但事实就是如此。如果我使用以下代码,我可以生成一个 xgb 回归模型,然后我可以用它来拟合训练集并评估模型

xgb_reg = xgb.XGBRegressor(objective='binary:logistic',
                           gamme = .12, 
                           eval_metric = 'logloss',
                           #eval_metric = 'auc', 
                           eta = .068,
                           subsample = .78,
                           colsample_bytree = .76,
                           min_child_weight = 9,
                           max_delta_step = 5,
                           nthread = 4)

start = time.time()
xgb_reg.fit(X_train, y_train)
print(start-time.time())

y_pred = xgb_reg.predict(X_test)
print(log_loss(y_test, y_pred))
Run Code Online (Sandbox Code Playgroud)

现在,我想更进一步并使用 kfold cv 来改进模型,所以我有这个

data_dmatrix = xgb.DMatrix(data=X_train,label=y_train)
params = {'objective':'binary:logistic','eval_metric':'logloss','eta':.068,
          'subsample':.78,'colsample_bytree':.76,'min_child_weight':9,
          'max_delta_step':5,'nthread':4}
xgb_cv = cv(dtrain=data_dmatrix, params=params, nfold=5, num_boost_round=20, metrics = 'logloss',seed=42) 
Run Code Online (Sandbox Code Playgroud)

但是,这会输出一个数据框,并且我无法在测试集上使用 .predict() 。

我想我可能不理解这个的基本概念,但我希望我只是忽略了一些简单的事情。

python scikit-learn xgboost

11
推荐指数
1
解决办法
2万
查看次数

将 python filedialog 限制为特定的文件类型

我创建了以下试用代码来制作一个程序,该程序将一个 Excel 工作表加载到一个数据框中,然后将该数据框保存到另一个 Excel 工作表中(所有用户选择)

import os
import pandas
from pandas import ExcelWriter
import tkinter as tk
from tkinter import filedialog

class Load_Save_Program():

    def __init__(self,master):
        self.master = master

        self.button1=tk.Button(self.master,text="Load",command=self.Load_file)
        self.button1.grid(row=0,column=0)

        self.button2=tk.Button(self.master,text="Save",command=self.Save_file)
        self.button2.grid(row=0,column=1)

        self.text=tk.Text(master)
        self.text.grid(row=1,column=0,columnspan=2)

    def Load_file(self):
        self.df_import=pandas.read_excel(filedialog.askopenfilename(initialdir = os.getcwd()),
                                            filetypes=("excel files","*.xlsx"))
        self.text.insert(tk.END,self.df_import)

    def Save_file(self):
        self.writer = ExcelWriter(filedialog.asksaveasfilename(initialdir = os.getcwd()),
                                            filetypes=("Excel files", "*.xlsx"))
        self.df_import.to_excel(self.writer,'sheet1')
        self.writer.save()

root=tk.Tk()
Load_Save_Program(root)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)

我想要做的是扩展它,以便当程序弹出文件目录窗口时,它只显示 .xlsx 文件类型的文件,以避免用户打开不兼容的文件类型时出错。到目前为止,我还没有想出任何可以解释如何正确设置的信息。

tkinter python-3.x

3
推荐指数
2
解决办法
8196
查看次数

标签 统计

python ×1

python-3.x ×1

scikit-learn ×1

tkinter ×1

xgboost ×1