优化分类购买数据的季节预测

时间:2018-07-11 04:08:59

标签: python classification random-forest logistic-regression supervised-learning

我正在编写一种算法,目的是使用以下示例数据来预测购买季节(冬季,春季,夏季和秋季):

df.head(4)

            shop   category  subcategory     season
date                
2013-09-04  abc    weddings  shoes           winter
2013-09-04  def    jewelry   watches         summer
2013-09-05  ghi    sports    sneakers        spring
2013-09-05  jkl    jewelry   necklaces       fall

预测变量为shopcategorysubcategory,目标变量为season

我有两个问题:1)预处理的最佳实践和2)此类问题的最佳分类模型

1)预处理-以下是我的代码,但是我不确定是否需要一种热编码才能正确处理分类变量:

le = LabelEncoder()
ss = StandardScaler()
X = pd.get_dummies(store_df.iloc[:, :-1], drop_first=True).values.astype('float')
y = le.fit_transform(store_df.iloc[:, -1].values).astype('float')
xtrain, xtest, ytrain, ytest = train_test_split(X, y, test_size=0.3, random_state=42)
xtrain = ss.fit_transform(xtrain)
xtest = ss.transform(xtest)

数据的形状看起来正确如下:

Training set: (67915, 1040), (67915,)
Testing set: (29107, 1040), (29107,)

预处理可以从一种热编码中受益吗?什么是最佳做法?

2)模型选择-到目前为止,我已经尝试了两个分类器,两个分类器的得分均约为66%(不理想):

逻辑回归:

lr = LogisticRegression(C=100000)
lr.fit(xtrain, ytrain)
lr_pred = lr.predict(xtest)
lr_acc = accuracy_score(ytest, lr_pred)

随机森林分类器:

rfc = RandomForestClassifier(n_estimators=100, max_features=3)
rfc.fit(xtrain, ytrain)
rfc_pred = rfc.predict(xtest)
rfc_acc = accuracy_score(ytest, rfc_pred)

假设我的预处理有效完成,我可以想象一些分类方法会起作用。欢迎任何指针。

0 个答案:

没有答案