Я только что закончил обучение модели прогнозирования цен регрессии в LightGBM. Обученная мною модель принимает следующие входные данные
CAR NAME, YEAR, MILEAGE, ATTENTION GRABBER, KEY SPECS, DESCRIPTION
и использует их для прогнозирования цены.
Модель, которую я обучил, получила среднеквадратическую оценку 0,22хх, поэтому я подозреваю, что она действительно сильно соответствует данным, учитывая, что цены на автомобили колеблются от 100 до 10 000 000, при этом большинство падает от 500 до 40 000 фунтов. .
Я хочу загрузить некоторые данные в модель и посмотреть прогноз цены, как мне это сделать?
Я сохранил модель как model.txt, используя
gbm.save_model('model.txt')
Я могу загрузить модель, используя
bst = lgb.Booster(model_file='model.txt')
Редактировать
Я попытался использовать следующий код:
import lightgbm as lgb
import pandas as pd
df = pd.read_csv('Data_for_model.csv')
bst = lgb.Booster(model_file='model.txt')
json_model = bst.dump_model()
print(json_model)
print(bst)
prediction = bst.predict(df)
print(prediction)
Но я получил следующее сообщение об ошибке:
Traceback (most recent call last):
File "C:/Users/Samuel/PycharmProjects/untitled/gbm load.py", line 14, in <module>
prediction = bst.predict(df)
File "C:\Users\Samuel\PycharmProjects\untitled\venv\lib\site-packages\lightgbm\basic.py", line 2415, in predict
data_has_header, is_reshape)
File "C:\Users\Samuel\PycharmProjects\untitled\venv\lib\site-packages\lightgbm\basic.py", line 504, in predict
data = _data_from_pandas(data, None, None, self.pandas_categorical)[0]
File "C:\Users\Samuel\PycharmProjects\untitled\venv\lib\site-packages\lightgbm\basic.py", line 344, in _data_from_pandas
+ ', '.join(data.columns[bad_indices]))
ValueError: DataFrame.dtypes for data must be int, float or bool.
Did not expect the data types in the following fields: CAR NAME, ATTENTION GRABBER, KEY SPECS, DESCRIPTION, URL, PRICE
Затем я просто удалил материал в столбцах CAR NAME, ATBENTION GRABBER, KEY SPECS, DESCRIPTION, URL, PRICE и оставил пробег и год и получил следующую ошибку:
[LightGBM] [Fatal] The number of features in data (8) is not the same as it was in training data (33764).
Traceback (most recent call last):
File "C:/Users/Samuel/PycharmProjects/untitled/gbm load.py", line 14, in <module>
prediction = bst.predict(df)
File "C:\Users\Samuel\PycharmProjects\untitled\venv\lib\site-packages\lightgbm\basic.py", line 2415, in predict
data_has_header, is_reshape)
File "C:\Users\Samuel\PycharmProjects\untitled\venv\lib\site-packages\lightgbm\basic.py", line 535, in predict
preds, nrow = self.__pred_for_np2d(data, num_iteration, predict_type)
File "C:\Users\Samuel\PycharmProjects\untitled\venv\lib\site-packages\lightgbm\basic.py", line 623, in __pred_for_np2d
return inner_predict(mat, num_iteration, predict_type)
File "C:\Users\Samuel\PycharmProjects\untitled\venv\lib\site-packages\lightgbm\basic.py", line 605, in inner_predict
preds.ctypes.data_as(ctypes.POINTER(ctypes.c_double))))
File "C:\Users\Samuel\PycharmProjects\untitled\venv\lib\site-packages\lightgbm\basic.py", line 45, in _safe_call
raise LightGBMError(decode_string(_LIB.LGBM_GetLastError()))
lightgbm.basic.LightGBMError: The number of features in data (8) is not the same as it was in training data (33764).
Разве я как-то тренировал свою модель, используя только два из моих столбцов, а не все (кроме URL, который я не хотел использовать в любом случае)?
И что это значит? второе сообщение об ошибке означает?