我正在尝试构建一个模型,可以根据商品预测它属于哪个商店。
我的数据集大约有250条记录,这些记录应该是来自不同在线商店的商品。
每个记录由以下组成:
我的直觉告诉我,应该能够通过模型来解决这个问题。我错过了什么吗?
这是数据: https://pastebin.com/nUsSbkp4
我的数据集大约有250条记录,这些记录应该是来自不同在线商店的商品。
每个记录由以下组成:
类别、子类别、价格、商店标识符(y变量)
我尝试了几个邻居的数量,使用曼哈顿距离,但很遗憾无法获得更好的结果,准确度约为0.55。
随机森林的准确率约为0.7。我的直觉告诉我,应该能够通过模型来解决这个问题。我错过了什么吗?
这是数据: https://pastebin.com/nUsSbkp4
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import confusion_matrix
from sklearn.cross_validation import train_test_split
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
from sklearn.neighbors import KNeighborsClassifier
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
dataset = pd.read_csv('data.csv')
X = dataset.iloc[:, :-1].values
y = dataset.iloc[:, 3].values
labelencoder_X_0 = LabelEncoder()
X[:, 0] = labelencoder_X_0.fit_transform(X[:, 0])
labelencoder_X_1 = LabelEncoder()
X[:, 1] = labelencoder_X_1.fit_transform(X[:, 1])
onehotencoder_0 = OneHotEncoder(categorical_features = [0])
X = onehotencoder_0.fit_transform(X).toarray()
onehotencoder_1 = OneHotEncoder(categorical_features = [1])
X = onehotencoder_1.fit_transform(X).toarray()
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 0)
# classifier = RandomForestClassifier(n_estimators=25, criterion='entropy', random_state = 0)
classifier = KNeighborsClassifier(n_neighbors=3, metric='minkowski', p=2)
classifier.fit(X_train, y_train)
y_pred = classifier.predict(X_test)
cm = confusion_matrix(y_test, y_pred)
accuracy = classifier.score(X_test, y_test)
print(accuracy)