0

为了与 Turi 取得联系,我正在尝试创建一个能够区分由字符组成的字符串和由数字组成的字符串的模型。我有包含训练数据的 CSV 文件。每行包含两个条目,一个字符串和一个指示符,该字符串是数字还是平面字符串

String, isNumber
bvmuuflo , 0
71047015 , 1

我生成模型的 Python 脚本如下所示:

import graphlab as gl
data =  gl.SFrame('data.csv')
model = gl.classifier.create(data, target="isNumber", features=["String"])

这工作正常。但我不知道如何使用模型来检查例如“qwerty”是字符串还是数字。我正在尝试使用model.classify(...)API 调用。但是这两个电话

model.classify(gl.SFrame(["qwertzui"])

model.classify(gl.SFrame(["98765432"])

返回相同的结果

Columns:
    class   int
    probability float

Rows: 1

Data:
+-------+----------------+
| class |  probability   |
+-------+----------------+
|   1   | 0.509227594584 |
+-------+----------------+
[1 rows x 2 columns]

显然我的程序中有错误,但我无法找到它。欢迎任何帮助!

4

1 回答 1

0

由于该模型只有一列用于训练,它将能够识别它已经看到的字符串,但无法识别它没有的字符串。我的猜测是 .509 是你输入的字符串的百分比,所以它只是响应它以前没有见过的任何东西。

这显然是一个玩具示例,但如果你想让它工作,我会使用类似单词袋的东西,但用于字母。用标题 a,b,c...z,0,1...9 制作 36 列,并为每行输入每个字符串的每个字符的计数。这样,模型会将单个字母视为给类而不是整个字符串的概率。

于 2018-05-18T21:11:48.683 回答