我已经定义了一个随机森林模型,将数据分为训练集和测试集,使用 trainx
和 trainy
以及我的目标变量,即 y = 价格来训练模型。当我运行 df_model.predict(valx)
时,它返回一个包含预测价格的数组。现在我希望用户输入3BHK大小的房屋,位于美国,建筑类型为超级内置,并得到“单个房屋”的价格,而不是那个NumPy数组,我希望得到如上所述的输出。
我尝试使用 df_model.predict(df.Landsize)
,它给了我土地面积的预测,但我想要的是价格。我的代码如下所示:
df=pd.read_csv('house_data.csv') df_feautres=['Rooms','Balcony','Bathroom','Landsize','Lattitude','Longtitude'] x=df[df_feautres] y=df.Price df_model=RandomForestRegressor(random_state=1) train_x,val_x,train_y,val_y=train_test_split(x,y,random_state=1) df_model.fit(x,y) prediction=df_model.predict(val_x) print(prediction)
我得到的是预测价格的NumPy数组,但我想要的是基于用户输入的单个房屋的价格
回答:
我想回答我自己的问题。我从用户那里获取输入,并将它们存储在字典中,然后从字典创建一个DataFrame,如 df=pd.DataFrame(d),然后将这个DataFrame作为输入传递给预测价格,如 df_model.predict(df)