为了与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-call。但这两个电话
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]显然,我的程序中有一个错误,但我找不到它。欢迎任何帮助!
发布于 2018-05-19 05:11:49
由于该模型只有一列用于训练,因此它将能够识别它已经看到的字符串,但无法识别它没有看到的字符串。我的猜测是.509是您输入的字符串的百分比,所以它只会对以前没有见过的任何东西进行响应。
这显然是一个玩具示例,但如果你想让它工作,我会使用类似于一袋单词的东西,但用于字母。使用标题a,b,c...z,0,1...9制作36列,并在每行中放置每个字符串中每个字符的计数。这样,模型将把单个字母看作是给予类的概率,而不是整个字符串。
https://stackoverflow.com/questions/50158024
复制相似问题