发现机器学习就根本停不下来

今天来用RNN算法来爽爽僵尸网络宿主预测

首先我们下载好数据,然后打开我们可爱的熊猫

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from subprocess import check_output

df = pd.read_csv('F:\\machine_learning\\network.csv')
df.head(2)
print(df.head())

下面继续处理数据:

按每天的数据包总量来分

df['date']= pd.to_datetime(df['date'])
df = df.groupby(['date','l_ipn'],as_index=False).sum()
df['yday'] = df['date'].dt.dayofyear
df['wday'] = df['date'].dt.dayofweek

对每个ip进行分类:

ip0 = df[df['l_ipn']==0]
max0 = np.max(ip0['f'])
ip1 = df[df['l_ipn']==1]
max1 = np.max(ip1['f'])
ip2 = df[df['l_ipn']==2]
max2 = np.max(ip2['f'])
ip3 = df[df['l_ipn']==3]
max3 = np.max(ip3['f'])
ip4 = df[df['l_ipn']==4]
max4 = np.max(ip4['f'])
ip5 = df[df['l_ipn']==5]
max5 = np.max(ip5['f'])
ip6 = df[df['l_ipn']==6]
max6 = np.max(ip6['f'])
ip7 = df[df['l_ipn']==7]
max7 = np.max(ip7['f'])
ip8 = df[df['l_ipn']==8]
max8 = np.max(ip8['f'])
ip9 = df[df['l_ipn']==9]
max9 = np.max(ip9['f'])
ip0.head(2)

然后我们输出一下ip0的头

很棒,我们已经成功按ip分类了

然后我们按每年的数据包总量来对每个ip进行图形化计数

首先举个例子:

count, division = np.histogram(ip0['f'],bins=10)
division

他会输出这些

array([   68.,   810.,  1552.,  2294.,  3036.,  3778.,  4520.,  5262.,
        6004.,  6746.,  7488.])

然后我们开始对每个ip下手

f,axarray = plt.subplots(5,2,figsize=(15,20))
count, division = np.histogram(ip0['f'],bins=10)
g = sns.barplot(x=division[0:len(division)-1],y=count,ax=axarray[0,0])
axarray[0,0].set_title("Local IP 0 Flow")

count, division = np.histogram(ip1['f'],bins=10)
sns.barplot(x=division[0:len(division)-1],y=count,ax=axarray[0,1])
axarray[0,1].set_title("Local IP 1 Flow")

count, division = np.histogram(ip2['f'],bins=10)
sns.barplot(x=division[0:len(division)-1],y=count,ax=axarray[1,0])
axarray[1,0].set_title("Local IP 2 Flow")

count, division = np.histogram(ip3['f'],bins=10)
sns.barplot(x=division[0:len(division)-1],y=count,ax=axarray[1,1])
axarray[1,1].set_title("Local IP 3 Flow")

count, division = np.histogram(ip4['f'],bins=10)
sns.barplot(x=division[0:len(division)-1],y=count,ax=axarray[2,0])
axarray[2,1].set_title("Local IP 4 Flow")

count, division = np.histogram(ip5['f'],bins=10)
sns.barplot(x=division[0:len(division)-1],y=count,ax=axarray[2,1])
axarray[2,1].set_title("Local IP 5 Flow")

count, division = np.histogram(ip6['f'],bins=10)
sns.barplot(x=division[0:len(division)-1],y=count,ax=axarray[3,0])
axarray[3,0].set_title("Local IP 6 Flow")

count, division = np.histogram(ip7['f'],bins=10)
sns.barplot(x=division[0:len(division)-1],y=count,ax=axarray[3,1])
axarray[3,1].set_title("Local IP 7 Flow")

count, division = np.histogram(ip8['f'],bins=10)
sns.barplot(x=division[0:len(division)-1],y=count,ax=axarray[4,0])
axarray[4,0].set_title("Local IP 8 Flow")

count, division = np.histogram(ip9['f'],bins=10)
sns.barplot(x=division[0:len(division)-1],y=count,ax=axarray[4,1])
axarray[4,1].set_title("Local IP 9 Flow")

最新文章

  1. 理解SQL Server的查询内存授予(译)
  2. swt byte[] 与 Image的转换
  3. [译]Quartz 框架 教程(中文版)2.2.x 之第一课 开始使用Quartz框架
  4. 完成了server和client的框架设计
  5. [转]Linux之od命令
  6. Weka中EM算法详解
  7. 疯狂java实战演义 弹球游戏代码
  8. (转)iOS7界面设计规范(10) - UI基础 - 文字排版与配色
  9. Linux中一些简单命令(一)
  10. js中的0就是false,非0就是true及案例
  11. Spring Boot 2.x整合Redis
  12. Justoj 2388最短区间 贪心
  13. 巧用PHP中__get()魔术方法
  14. Windows7 Autoconfiguration IPv4 Address 导致无法上网
  15. 21-matlab 迷宫题
  16. 在Apache上http强制跳转到https
  17. ASP.NET Web API(MVC API)
  18. Linux判断文件是否为空,不为空则打印该文件的大小
  19. windows cmd窗口提示“telnet”命令不能内部或外部命令,也不是可运行的程序
  20. android 搜索自动匹配关键字并且标红

热门文章

  1. Swift 1
  2. https学习笔记
  3. 简明Python3教程(A Byte of Python 3)
  4. Ubuntu logomaker sh: 1: pngtopnm: not found 解决方案
  5. Linux性能测试 KSysguard工具
  6. 【多线程】python界面阻塞,白屏,not responding解决的简单例子
  7. OpenGL(六) gluLookAt和gluPerspective函数解析
  8. matlab 工具函数(一) —— 添加指定 SNR 的噪声
  9. opencart源码解析之 index.php
  10. MQTT是IBM开发的一个即时通讯协议,构建于TCP/IP协议上,是物联网IoT的订阅协议,借助消息推送功能,可以更好地实现远程控制