使用数字标签进行分类?

时间:2016-02-23 11:24:50

标签: machine-learning classification regression data-mining rapidminer

我知道一些分类算法,例如决策树,但我不能将它们中的任何一个用于我手头的问题。

我有一个数据集,其中每行包含有关购买的信息。它的列是:

- customer id
- store id where the purchase took place
- date and time of the event
- amount of money spent

我正在尝试做出一个预测,假设有谁,何时何地预测将花多少钱。

有哪些可行的方法?有没有众所周知的算法?

另外,我正在学习RapidMiner,我正在尝试它的一些功能。我在那里尝试的所有东西都不允许我有一个真实的数字(花费的金额)作为标签。也许我做错了什么?

2 个答案:

答案 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,您将看到允许的数字标签 接下来,滚动操作员的帮助文档,您将看到指向教程过程的链接。它使用起来非常简单,但让一个例子开始让你感觉很好。

如果您需要任何帮助,请与我们联系。