X_train, y_train = df_train.iloc[:, 1:], df_train.iloc[:, 0] X_test, y_test = df_test.iloc[:, 1:], df_test.iloc[:, 0] reg = xgb.XGBRegressor(n_estimators=1000) reg.fit(X_train, y_train, eval_set=[(X_train, y_train), (X_test, y_test)], early_stopping_rounds=50, verbose=False) # Change verbose to True if you want to see it train f, ax = plt.subplots(figsize=(15, 10)) _ = plot_importance(reg, height=0.9, ax=ax) plt.show() df_test['Prediction'] = reg.predict(X_test) df_all = pd.concat([df_test, df_train], sort=False) f, ax = plt.subplots(1) f.set_figheight(5) f.set_figwidth(15) _ = df_all[['Global_active_power', 'Prediction']].plot(ax=ax, style=['-', '.']) ax.set_xbound(lower='12-10-2007', upper='12-20-2007') plot = plt.suptitle('Predicted Day')
时间: 2024-04-02 09:36:10 浏览: 103
这段代码使用 XGBoost 模型对数据集进行训练和预测,并且绘制了预测的结果与真实值之间的比较图。首先,将训练集和测试集分别赋值给 X_train, y_train 和 X_test, y_test 变量。然后,使用 XGBRegressor 类定义了一个 XGBoost 模型,其中 n_estimators 参数指定了模型中树的数量。接着,使用 fit 方法对模型进行训练,并使用 eval_set 参数来指定训练集和测试集,early_stopping_rounds 参数用于提前终止训练,verbose 参数用于控制训练时是否输出日志信息。训练完成后,使用 plot_importance 函数绘制了特征重要性图表。接下来,使用 predict 方法对测试集进行预测,并将预测结果添加到 df_test 数据集中。最后,将 df_test 和 df_train 数据集合并,绘制了预测结果与真实值之间的比较图,其中 set_xbound 方法用于设置 x 轴的显示范围。
相关问题
from sklearn import preprocessing min_max_scaler = preprocessing.MinMaxScaler() df0=min_max_scaler.fit_transform(df1) df = pd.DataFrame(df0, columns=df1.columns) x=df.iloc[:,:-1] y=df.iloc[:,-1] #划分训练集测试集 cut=300#取最后cut=30天为测试集 x_train, x_test=x.iloc[:-cut],x.iloc[-cut:]#列表的切片操作,X.iloc[0:2400,0:7]即为1-2400行,1-7列 y_train, y_test=y.iloc[:-cut],y.iloc[-cut:] x_train, x_test=x_train.values, x_test.values y_train, y_test=y_train.values, y_test.values
这段代码使用了sklearn库中的preprocessing模块,导入了MinMaxScaler类。然后,对df1数据进行了归一化处理,将处理后的结果存储在df0中。接着,将df0转换成了DataFrame格式,并将列名设置为df1的列名。最后,将df中的特征数据和标签数据分别存储在x和y中。
X = df_smoted.iloc[:, :-1] y = df_smoted.iloc[:, -1] from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20, random_state=123)这段代码的意思
这段代码展示了如何使用 sklearn 库中的 train_test_split 函数将数据集划分为训练集和测试集。其中,df_smoted 是经过过采样处理后的数据集,X 是除最后一列外的所有特征变量,y 是目标变量。train_test_split 函数将数据集按照给定的比例(test_size=0.20)划分为训练集和测试集,并将划分后的数据集分别保存在 X_train、X_test、y_train、y_test 变量中。random_state 参数用于设置随机数种子,保证每次运行结果一致。这段代码的目的是为了准备训练和测试数据,以便在机器学习模型中使用。
阅读全文