机器学习实战的备忘笔记(1)
这里面就不讲学习的过程和内容了,只是记录一下遇到的一些问题:
现在学习到了第二章的 2.2 节。
安装了PYTHON3.7.3
1.需要手动安装 matplotlib (一个绘制表的模块)
在CMD命令负下,到安装目录的script/下(pip 在这个目录),执行:
1.1 pip install matplotlib 最初几次都失败了,不是连不上服务器,就是找不到合适的版本。
1.2 试过从官网下载了matplotlib3.7_x86_amdwin64,安装了也说版本不对。
1.3 再次执行 pip install matplotlib ,这次下载了一半,又故障。 多重复几次测试,安装成功了
2.改变执行目录
由于实验代码下载到了用户目录,而不是放在PYTHON的执行目录,所以需要把执行目录切换过去。
>> import os
>>os.chdir('程序所在的 目录 ')
>> n= os.system('cls') #清除屏幕 只有在 cmd命令框下才有效,在 python shell 中没用
3. reload
重新加载模块。如果修改了代码,必须重新加载该代码的模块。
并且reload的模块,必须是已经import过的(毕竟是重加载嘛) 。
在 python3.0后,必须哟啊加载reload模块后才能使用reload
>> from imp import reload
>>reload(...)
4. print
python 3.0 后,print变成了函数 。所以 需要加括号
pinrt"123" ---修改为--> print("123")
所以实验代码中的print都要修改
5. 做表格绘制实验时,SHOW() 之后,如果还要重新显示,必须重新从 reload(matplotlib)开始执行代码
因为plt.show()后,销毁了matplotlib的实体。
(经过实验,从fig = plt.figure() 开始重新执行即可)
6. array
python3.0后,需要import array 模块才能使用array
>>from array import array
不直接import array 是因为我们想直接用array()函数的话,必须导入该函数。否则使用时,要写完整的路径 array.array()
7. 修改源代码
kNN.py 中 48行:
classLabelVector.append( int (listFromLine[-1]) )
去掉int,改为
classLabelVector.append( listFromLine[-1] )
而在画图时
>>ax.scatter(datingDataMat[:,1] , datingDataMat[:,2], 15.0*array(datingLabels) ,15.0* array(datingLabels) )
语句修改为 :
>>ax.scatter(datingDataMat[:,1] , datingDataMat[:,2], array('i',map(int,datingLabels)) , array('i',map(int,datingLabels)) )
如果写为15.0 * array
会报告故障,说超出界限(1000)