python 窃漏电用户问题的LM神经网络模型(bug修改后可运行)

python 窃漏电用户问题的LM神经网络模型(bug修改后可运行)_第1张图片

看到该问题的时候,尝试在网上寻找源码,这里就不贴出来了,见6-3 构建LM神经网络模型代码(python3.6下运行)_清泉石上流9300的博客-CSDN博客icon-default.png?t=M4ADhttps://blog.csdn.net/sinat_17588957/article/details/89945560?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-89945560-blog-110827716.pc_relevant_antiscanv2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-89945560-blog-110827716.pc_relevant_antiscanv2&utm_relevant_index=2但是运行的时候发现问题还是挺多的。

 

(1)python的版本

由于这里要使用神经网络,需要下载tensorflow库,而这个库是要64位的python版本才能下载的,于是迫不得已我把旧版本卸了,又重新安装了64位版本。

(2)pip install tensorflow下载太慢,老是出错

由于网速太慢,用pip install tensorflow老是下载出错,上网寻找了各种解决方法,发现一个非常好用的命令

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow

不仅快,而且不会出错。

一切准备就绪后,开始运行代码,然后bug就不断出现了,如下:

(1)'DataFrame' object has no attribute 'as_matrix'

python 窃漏电用户问题的LM神经网络模型(bug修改后可运行)_第2张图片

原因:as_matrix()方法被淘汰了

解决方法:修改为

data = data.iloc[:,:].values

 

(2)__init__() missing 1 required positional argument: 'units'

python 窃漏电用户问题的LM神经网络模型(bug修改后可运行)_第3张图片

原因:Dense的参数出错

解决方法:修改为

net.add(Dense(10,input_dim=3)) 

第21行同理修改为

net.add(Dense(1,input_dim=10)) 

然后代码神经网络迭代开始运行

python 窃漏电用户问题的LM神经网络模型(bug修改后可运行)_第4张图片

(3)'Sequential' object has no attribute 'predict_classes'

 python 窃漏电用户问题的LM神经网络模型(bug修改后可运行)_第5张图片

原因:'Sequential'没有'predict_classes'方法,但是有'predict'方法,于是修改为

 pc = net.predict(train[:, :3]).reshape(len(train))

(4)Classification metrics can't handle a mix of binary and continuous targets

python 窃漏电用户问题的LM神经网络模型(bug修改后可运行)_第6张图片

python 窃漏电用户问题的LM神经网络模型(bug修改后可运行)_第7张图片

原因:train[:, 3]是int类型,而pc是表示概率的float类型,类型不同,所以会出错。

python 窃漏电用户问题的LM神经网络模型(bug修改后可运行)_第8张图片

解决方法:将pc四舍五入后转换为int类型

在第44行前插入一句

pc=np.around(pc,0).astype(int)

 

最终,所有bug解决,代码成功编译运行,结果如下:

python 窃漏电用户问题的LM神经网络模型(bug修改后可运行)_第9张图片

Predicted label为预测结果,True label为真实结果

这个图的意思是:

预测结果与真实结果都为0的有150个,都为1的有59个;

预测结果为1,真实结果为0的有12个;预测结果为0,真实结果为1的有11个.

则正确率为:(150+59)/(150+12+11+59)×100%=90.09%

 

你可能感兴趣的:(python,大数据分析,python)