机器学习实战之k-近邻算法
书中2.2.1 准备数据:从文本文件中解析数据 P22
在Python命令提示符才输入下面命令时,出现ValueError: invalid literal for int() with base 10: 'largeDoses'错误。
datingDataMat, datingLabels = KNN.file2matrix('datingTestSet.txt')
解决办法:
《机器学习实战》书中的一个小错误,P22的datingTestSet.txt这个文件,根据网上的源代码,应该选择datingTestSet2.txt这个文件。主要的区别是最后的标签,作者原来使用字符串‘veryLike’作为标签,但是Python转换会出现ValueError: invalid literal for int() with base 10: 'largeDoses'的错误。所以改成后面的文件就可以了。 --------------------- 本文来自 chchlh 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/chchlh/article/details/41596797?utm_source=copy
在命令行窗口直接输入reload(KNN)时报错NameError: name 'reload' is not defined
解决办法:
import importlib
importlib.reload(KNN)
在命令行窗口输入import matplotlib时报错NameError: name 'reload' is not defined
解决办法:
pip install matplotlib
绘制图2-5的具体代码如下:
import KNN import importlib importlib.reload(KNN) datingDataMat, datingLabels = KNN.file2matrix('datingTestSet2.txt') import matplotlib import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties fig = plt.figure() ax = fig.add_subplot(111) font = FontProperties(fname=r"c:\windows\fonts\DengXian.ttf", size=15) ax.scatter(datingDataMat[:, 0], datingDataMat[:, 1], labelsShowSizeColor, labelsShowSizeColor) plt.title("datingDataMat矩阵的第二、第三列数据", fontproperties=font) plt.xlabel('每年获取的飞行常客里程数', fontproperties=font) plt.ylabel('玩视频游戏所耗时间百分比', fontproperties=font) colors = ["#440154", "#21918C", '#FDE725'] texts = ["didntLike", "smallDoses", "largeDoses"] ms = [5, 7, 9] patches = [ plt.plot([],[], marker="o", ms=ms[i], ls="", mec=None, color=colors[i], label="{:s}".format(texts[i]))[0] for i in range(len(texts)) ] plt.legend(handles=patches,loc='upper left', ncol=1, facecolor="plum", numpoints=1) plt.show()

浙公网安备 33010602011771号