Я выполнил код, который делает прогноз с использованием нескольких алгоритмов классификации, таких как KNN или Naive-Bayes.Основная идея использования нескольких алгоритмов - сравнение их точности.В то время как Логистическая регрессия имеет около 88% рейтинга точности, KNN имеет около 76%.Когда я показал код пожилым людям.Они сказали мне, что рейтинги слишком низкие.
Репозиторий Github для набора данных и кода: https://github.com/halilzcler/product-prediction
Так я преобразовал данные, для прогноза я использовал библиотеку scikit-learn.Я не добавил весь код здесь, полный код находится в github-репо.
df1 = pd.read_csv('data.train.csv')
df2 = pd.read_csv('data.test.csv')
df1.rename( columns={'Unnamed: 0':'Customer', 'Products bought by the customer':'ItemId', 'New products bought by the customer':'Product'}, inplace=True )
df2.rename( columns={'Unnamed: 0':'Customer', 'Products bought by the customers':'ItemId', 'New products bought by the customers':'Product'}, inplace=True )
def products(item):
productList = item.split(";")
return productList
df1["ItemId"] = df1["ItemId"].apply(products)
df2["ItemId"] = df2["ItemId"].apply(products)
df1_dummies = df1["ItemId"].str.join(sep='*').str.get_dummies(sep='*')
df2_dummies = df2["ItemId"].str.join(sep='*').str.get_dummies(sep='*')
dfTrain = df1.merge(df1_dummies, left_index = True, right_index = True) \
.drop("ItemId", axis = 1) \
.drop("Customer", axis = 1)
dfTest = df2.merge(df2_dummies, left_index = True, right_index = True) \
.drop("ItemId", axis = 1) \
.drop("Customer", axis = 1)
le = preprocessing.LabelEncoder().fit(dfTrain['Product'])
dfTrain['Product'] = le.fit_transform(dfTrain['Product'])
X_train = dfTrain[dfTrain.columns[-74:]].values
X_test = dfTest[dfTest.columns[-74:]].values
y_train = dfTrain.iloc[:, 0].values
Согласно обратной связи, ожидаемый минимальный рейтинг точности для любого алгоритма классификации должен быть около 90%, мои результаты ниже, и яне смог найти свою ошибку.Я не уверен, в чем проблема.
Я ценю любую помощь.