我知道一些分类算法,例如决策树,但我不能将它们中的任何一个用于我手头的问题。
我有一个数据集,其中每行包含有关购买的信息。它的列是:
- customer id
- store id where the purchase took place
- date and time of the event
- amount of money spent
我正在尝试做出一个预测,假设有谁,何时何地预测将花多少钱。
有哪些可行的方法?有没有众所周知的算法?
另外,我正在学习RapidMiner,我正在尝试它的一些功能。我在那里尝试的所有东西都不允许我有一个真实的数字(花费的金额)作为标签。也许我做错了什么?
答案 0 :(得分:0)
您可以使用决策树回归器。使用类似scikit-learn的工具包,您可以使用DecisionTreeRegressor算法,其中您的功能将是商店ID,日期和时间以及客户ID,您的目标将是花费的金额。
您可以将此转变为受监督的学习问题。这是未经测试的代码,但它可能会让你开始
# Load libraries
import numpy as np
import pylab as pl
from sklearn import datasets
from sklearn.tree import DecisionTreeRegressor
from sklearn import cross_validation
from sklearn import metrics
from sklearn import grid_search
def fit_predict_model(data_import):
"""Find and tune the optimal model. Make a prediction on housing data."""
# Get the features and labels from your data
X, y = data_import.data, data_import.target
# Setup a Decision Tree Regressor
regressor = DecisionTreeRegressor()
parameters = {'max_depth':(4,5,6,7), 'random_state': [1]}
scoring_function = metrics.make_scorer(metrics.mean_absolute_error, greater_is_better=False)
## fit your data to it ##
reg = grid_search.GridSearchCV(estimator = regressor, param_grid = parameters, scoring=scoring_function, cv=10, refit=True)
fitted_data = reg.fit(X, y)
print "Best Parameters: "
print fitted_data.best_params_
# Use the model to predict the output of a particular sample
x = [## input a test sample in this list ##]
y = reg.predict(x)
print "Prediction: " + str(y)
fit_predict_model(##your data in here)
我从一个我正在研究的项目中直接预测房价,所以可能有一些不必要的库,如果没有进行验证,你就不知道这个案例有多准确,但这应该让你开始。
点击此链接:
http://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeRegressor.html
答案 1 :(得分:0)
是的,正如评论所指出的那样,你需要回归。线性回归听起来像是一个很好的起点,因为你没有大量的变量。
在RapidMiner类型回归到操作员菜单中,您将看到Modelling->下的几个选项。功能。线性回归,多项式,向量等(还有更多,但作为一个初学者,让我们从这里开始)。 右键单击任何这些运算符,然后按Show Operator Info,您将看到允许的数字标签 接下来,滚动操作员的帮助文档,您将看到指向教程过程的链接。它使用起来非常简单,但让一个例子开始让你感觉很好。
如果您需要任何帮助,请与我们联系。