使用随机森林预测销售订单交货时间

Sales Order Delivery time Prediction Using Random Forest

这是一个很菜鸟的问题。但我已经实施了随机森林算法来根据来源、目的地、供应商等预测交货所需的天数。 我已经使用过去 12 个月的数据(80% 训练,20% 测试数据)实施了 RF,并取得了不错的结果

我的问题是,对于实现 RF,我已经没有了。交付但未来的天数在我的数据集中,我不会有该列。我应该如何使用这个已经训练好的模型来使用起点、目的地、日期等进行未来预测?

这是我的随机森林,如您所见,我将数据集分成两部分:y 和 x。 y 是预测值或列,x 是整个数据集减去 y。这样您就可以使用您的训练集来预测您的情况下的交货时间。

注意:此代码用于森林 REGRESSOR,如果您需要分类器代码,请告诉我!

只是数据框定义:

y = df[targetkolom] #predicted column or target column
x = df.drop(targetkolom, 1) #Whole dataset minus target column

完整代码:

import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error, r2_score
import matplotlib.pyplot as plt
from sklearn.ensemble import RandomForestRegressor

df = pd.read_csv('Dataset Carprices.csv')
df.head()
df = df.drop(['car_ID', 'highwaympg', 'citympg'], 1)

targetkolom = 'price'


#Preperation on CarName
i =0
while i < len(df.CarName):
    df.CarName[i] = df.CarName[i].split()[0]
    i += 1
    
pd.set_option('display.max_columns', 200)
#(df.describe())

#Dataset standardization
df = pd.get_dummies(df, columns=['CarName','fueltype','aspiration','doornumber','carbody',
                                 'drivewheel','enginelocation','enginetype','cylindernumber',
                                 'fuelsystem'], prefix="", prefix_sep="")

#print(df.info())
     
y = df[targetkolom]
x = df.drop(targetkolom, 1)

#Normalisation
x = (x-x.min())/(x.max()-x.min())

x_train, x_test, y_train, y_test = train_test_split(x,y, test_size=0.3 ,random_state=7)

model = RandomForestRegressor(n_estimators=10000, random_state=1)


model.fit(x_train, y_train)

y_pred = model.predict(x_test)

print('Root Mean Squared Error:', np.sqrt(mean_squared_error(y_test, y_pred)))
print('R2 score:', r2_score(y_test,y_pred))