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

看到该问题的时候,尝试在网上寻找源码,这里就不贴出来了,见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'

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

解决方法:修改为

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

 

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

原因:Dense的参数出错

解决方法:修改为

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

第21行同理修改为

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

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

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

 

原因:'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

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

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

在第44行前插入一句

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

 

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

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

这个图的意思是:

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

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

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

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值