如何使用Dundas BI操作您的机器学习模型

因此,你或你组织中的某个人花时间收集数据,分析数据,选择机器学习算法,训练模型,现在你终于掌握了预测未来的关键(至少从数据的角度来看)。但接下来呢?您如何将这个机器学习模型与您的BI平台集成,以便您的预测模型可以以自动化的方式用于您正在进行的决策过程?换句话说,您如何操作您的模型并将其应用于通过您的应用程序传入的新数据,就像通过您的BI系统分析的所有其他数据一样。

使用Dundas BI,自动化这样的过程非常容易。Dundas BI丰富的数据准备层允许您利用所有的数据连接您已经在应用程序中进行了配置,以及在中创建的最喜欢的机器学习模型PythonR。然后,该模型作为数据准备过程的一部分执行,因此结果可以像任何其他数据集一样使用,利用Dundas BI的高级视觉层与他人分享见解。例如,您可能已经创建了一个到谷歌Analytics的数据连接,并将其与来自CRM系统的数据连接在一起。你的数据专家(数据科学家/工程师)设法创建了一个机器学习模型,该模型能够根据不同的数据变量对你的客户进行分类,这样你就可以为每个客户群体提供与该群体相关的服务。通过Dundas BI与Python和R的内置集成,您可以自动对每个通过CRM的新客户进行分类(或评分),并将结果交付给仪表板消费者(如客户成功团队)。然后,他们可以根据客户分类更好地决定如何最好地与该客户互动。

准备好操作你的预测模型了吗?请继续阅读实现步骤。


在Dundas BI中的实现

在大多数情况下,机器学习的典型流程涉及使用称为“训练数据”的样本数据来训练预测模型,以学习样本数据集中的已知模式。然后将该模型用于未知数据集,以训练好的模型为基础进行预测。

如上所述,使用Dundas BI的Python和R转换,您可以执行Python/R脚本,这些脚本将调用和加载预创建的机器学习模型对象,并通过以下步骤将其与新数据一起使用:

  • 将使用Python/R创建的模型对象文件存储在Dundas BI服务器可以访问的地方。
  • 在Dundas BI中创建一个数据立方体,其中包含您想要查询的数据,并向其添加Python/R转换。
  • 配置Dundas BI Python/R数据转换,以使用Python/R脚本加载模型对象文件并在新数据上使用它。
  • 结果将返回到Dundas BI的数据流中,然后用户可以将这些结果与Dundas BI中的任何其他可视化交互一起使用,就像使用其他数据一样。


使用Python的示例实现

下面的例子使用了流行的鸢尾花数据集,并使用谷歌的Tensorflow库创建了一个深度神经网络分类器模型,该模型使用训练数据集进行训练,以学习和识别鸢尾花物种的模式。这个例子使用的是Python,但你也可以在R中遵循类似的过程。

为了训练模型,将训练数据提供给机器学习算法,并将结果与包含已知模式的测试数据集(即我们的花样本中每个鸢尾花的实际物种类型)进行比较。然后,该模型学习并重新训练如何识别模式,从而识别物种。

然后将模型保存在对象文件中,该对象文件存储在Dundas BI服务器可访问的目录中。使用Dundas BI的Data Cube,执行该模型来识别来自另一个数据源的新数据中的花卉种类。

你可以在我们的面向所有人的预测分析网络研讨会在这里(从30:55开始)。

注意你可以从这里下载相关文件:

下载:张量流虹膜的例子

按照下面的步骤来实现:

训练你的模型:

1.在Python环境中,以管理员身份打开命令提示符,导航到C:\Program Files\Python36\Scripts文件夹和安装tensorflow, numpy熊猫使用以下命令创建包:

PIP安装tensorflow numpy pandas

2.将训练数据集和测试数据集存储在Python环境可访问的位置。在本例中,数据集位于与控件相同的文件夹中iris_classifier.py下面创建的文件。

3.在Python中创建和训练深度神经网络分类器模型,并将结果存储在目录中。这个例子创建了一个模型对象文件iris_classifier.py使用相关谷歌的Tensorflow库。

导入tensorflow为tf

导入numpy为np

#数据集

IRIS_TRAINING = " IRIS_TRAINING .csv"

IRIS_TEST = " IRIS_TEST .csv"

#加载数据集。

training_set = tf.contrib.learn.datasets.base.load_csv_with_header(filename=IRIS_TRAINING,

target_dtype = np.int,

features_dtype = np.float32,

target_column = 1)

test_set = tf.contrib.learn.datasets.base.load_csv_with_header(文件名=IRIS_TEST,

target_dtype = np.int,

features_dtype = np.float32,

target_column = 1)

Feature_columns = [tf.contrib.layers.]real_valued_column(" ",尺寸= 1))

#构建3层深度神经网络,分别有10、20、10个单元。

分类器= tf.contrib.learn。DNNClassifier(hidden_units=[10,20,10],

n_classes = 3,

model_dir = " c: / tfmodels / iris_model”,

feature_columns = feature_columns)

#适合模特。

classifier.fit (x = training_set.data,

y = training_set.target,

步骤= 2000)

评估准确性。

Accuracy_score = classifier.evaluate(x=test_set.data)

y = test_set.target)(“准确性”)

打印(“准确性:{0:f} .format (accuracy_score))

分类两个新的花样本。

New_samples = np.array(

[(6.4, 3.2, 4.5, 1.5), (5.8, 3.1, 5.0, 1.7), (5.5, 4.2, 1.4, 1.3)], dtype =浮动)

Y = classifier.predict(new_samples)

打印(“预测:{}”.format (str(列表(y))))

为了运行模型,导航到文件夹iris_classifier.py文件的位置,并在命令行中使用:

python iris_classifier.py

现在应该有一个目录“c: / tfmodels / iris_model”创建在C盘。

在Dundas BI中使用该模型:

1.确保您的Dundas BI服务器上安装了Python适用于所有用户。

2.在Dundas BI中创建一个数据立方体基于"Fisher's Iris Data.xlsx"您可以从数据集中排除物种信息。我们将使用上面创建的训练好的分类器模型来识别物种。

图1:Iris数据集预览。

3.添加Python Analysis转换并定义以下占位符,以引用Python脚本中的数据,该脚本将在下一步中返回模型的结果。

萼片长度:$sepal_length$
萼片宽度:$sepal_width$
花瓣长度:$petal_length$
花瓣宽度:$petal_width$

图2:添加Python转换。

图3:定义占位符。

4.在Python转换的脚本编辑器中使用下面的脚本调用分类器模型,并将数据输入其中以获取新数据。换句话说,让神经网络识别花的种类,并将其发送回数据立方体流。结果在数据框中返回:

导入tensorflow为tf

导入numpy为np

以pd方式导入熊猫

Feature_columns = [tf.contrib.layers.]real_valued_column(" ",尺寸= 1))

#构建3层深度神经网络,分别有10、20、10个单元。

分类器= tf.contrib.learn。DNNClassifier(hidden_units=[10,20,10],

n_classes = 3,

model_dir = " c: / tfmodels / iris_model”,

feature_columns = feature_columns)

样本= np。数组(list(map(list,zip($sepal_length$, $sepal_width$, $petal_length$, $petal_width$))), dtype=float)

Result_column = list(classifier.predict(samples))

speciesList = ["“花蔷薇”,“花斑蔷薇”,“锦绣蔷薇”]

物种= list(map(lambda speciesId: speciesList[speciesId], result_column))

结果= pd。DataFrame(data = {

“萼片长度”:$sepal_length$,

“萼片宽度”:$sepal_width$,

“花瓣长度”:$petal_length$,

“花瓣宽度”:$petal_width$,

“物种”:物种

})

返回结果

图4:在script Editor中实现脚本。

图5:Python转换的结果。

5.要避免不必要的聚合,请添加Rank转换。选择任意元素作为排序元素,并确保排序方法设置为“Standard”。将输出命名为“SampleId”,并确保将其切换为层次结构过程下的结果变换。

图6:添加Rank转换。

图7:Rank变换的结果。

可视化结果

现在您有了结果,您可以创建度量集并将它们可视化。例如,上面的结果可以可视化成一个点图,用颜色划分聚类,如下图所示:

图8:在散点图中可视化结果

要获得此结果,请创建一个度量集,并从上面创建的数据立方体中,在数据分析面板中添加以下内容:

措施:萼片宽度和花瓣长度

行:样本id和物种

颜色:物种

图9:散点图的数据分析面板。


结论

如果您已经完成了创建预测模型的繁重工作,那么在使用Dundas BI时,自动化它的使用只需几步之遥。通过获得预测分析功能,你的能力将超越描述性或诊断性分析,所有这些功能都在同一个企业BI解决方案中,这些解决方案已经连接到你的数据,并被所有用户用于所有其他BI用例。你甚至可以把它提升到一个新的水平,通过可视化的推荐或推荐,把它变成一个完全规范的分析模型集成它与其他可以自动执行完整操作的服务一起使用。

打印