欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

机器学习实战——2.2预测结果不符合预期的问题解决

程序员文章站 2022-07-15 08:58:19
...

python 3.6

我把kNN作为一个模块,另外写了一个test.py来做预测

在预测过程中发现虽然程序能跑通,但是不管怎么调整输入参数,结果大概率都是“not at all”

仔细检查后发现,是在程序输入顺序和datingTestSet2.txt中作为训练的数据集的顺序不一致,

(飞行里程和上网时间的顺序颠倒了)

机器学习实战——2.2预测结果不符合预期的问题解决

修改后的程序如下:

import kNN
import numpy as np
import importlib
importlib.reload(kNN)

#约会网站预测函数
#def classifyPerson()
resultList = ['not at all','in small doses','in large doses']
ffMiles = float(input("flier miles?"))                  #注意顺序!!先飞行里程,后上网时间,最后冰淇淋
percentTats = float(input("playing video game?"))
iceCream = float(input("ice cream?"))
datingDataMat,datingLabels = kNN.file2matrix('datingTestSet2.txt')
normMat, ranges, minVals = kNN.autoNorm(datingDataMat)
inArr = np.array([ffMiles,percentTats,iceCream])         #就是这里!!我之前按错误顺序粘贴了,导致预测结果不符合实际
classifierResult = kNN.classify0((inArr-minVals)/ranges,normMat,datingLabels,3)
print ("you will like this person:",resultList[classifierResult -1])

结果如下:

机器学习实战——2.2预测结果不符合预期的问题解决


* 另外要注意的问题是python3.6中用input取代了raw_input



相关标签: python