- 博客(34)
- 收藏
- 关注
原创 异常检测介绍
异常检测介绍1.基于传统机器学习的异常检测传统的机器学习方法主流的以LOF、HBOS、PCA、OCSVM、KNN等。市面上有已经集合了类似的框架,如下:[Python] Python Outlier Detection (PyOD): PyOD is a comprehensive and scalable Python toolkit for detecting outlying objects in multivariate data. It contains more than 20 detec
2021-08-02 15:47:26
324
原创 python中的多线程之间的通信
首先使用多线程的方法进行现场通信:import timefrom multiprocessing import Processfrom queue import Queuedef producer(queue): queue.put("a") time.sleep(2)def consumer(queue): time.sleep(2) data = queue.get() print(data)if __name__ == "__main__": queue = Queue(1
2021-07-27 22:29:21
498
原创 线程同步 lock rlock
基本使用方法from threading import Lock, RLock, Conditionlock = Lock()lock.acquire()lock.release()三种有可能出现死锁的情况1、 连续两次获取acquirelock.acquire()lock.acquire()没有release锁lock2、 互相等待的情况A要获取资源a,b;先a后bB要获取资源b,a;先b后aA(a,b)B(b,a)A(a,b)B(a,b)acquir
2021-07-18 11:05:53
128
原创 maltrail更新流量机制
总体来说分为两种:基于静态的获取:另一种是基于动态的获取里面分为两种,1、根据正则的匹配;2、通过动态网页可以获取不同公司的ip、域名等,加载的trails里面,供匹配使用。这里正则匹配很难知道对应的恶意流量具体种类。动态网页也是大量的混在...
2021-07-13 10:29:33
176
原创 GAN网络做异常检测
"""@Time : 2021/7/6 15:20-------------------------------------------------@Author : sailorlee(lizeyi)@email : chrislistudy@163.com-------------------------------------------------@FileName: train_gan.py@Software: PyCharm"""import matplotlib.
2021-07-13 10:24:35
1854
4
原创 python多线程的GIL
cpython中的 global interpreter lockpython中的一个线程对应c语言中的一个线程。python中的一个线程对应c语言中的一个线程。python会在解释器上加一把非常大的锁。同一时刻一次只有一个线程运行在一个cpu上执行字节码。无法将多个线程映射到多个cpu上执行。gil会根据执行的字节码行数以及时间片释放gil。gil遇到io操作会主动释放。def add(): #1. dosomething1 #2. io操作 # 1. dosomething
2021-07-12 16:27:50
84
原创 python中的迭代协议与生产器
迭代协议一共有两个类型,一种是Iterable(可迭代),另一个是迭代器Iterator。两者的类型不同。from collections.abc import Iterable,Iteratora = [1,2]iter_rator = iter(a)print(isinstance(iter_rator,Iterator))
2021-07-07 22:58:55
56
原创 解析pcap包
需求:我们需要从恶意流量中的log中提取其ip地址。再根据ip地址去从tcpdump中采集pcap包,把恶意流量提取出来。首先是初版的解析pcap包import osfrom scapy.all import *import scapy.all as scapyimport sysimport csvfrom time import strftime, localtime# f = open('log/dealpcap.log', 'a') #日志的重定向输出# sys.stdout =
2021-06-23 11:31:51
1569
原创 列表、生成器、字典推导式
列表生成式列表生成式的性能高于列表操作的性能。def handle_item(item): return item*itemodd_list = [handle_item(i) for i in range(21) if i%2 == 1]#用简介的方式去遍历可迭代对象生成需要格式的列表int_list = [1,2,3,4,5]qu_list = [item * item for item in int_list]print (type(qu_list))int_list = [1,
2021-06-02 10:55:11
87
1
原创 python中的切片对象
list中用法extend与append之间的区别。在extend里面添加元素,添加的内容是可迭代的对象,把对象里面的元素添加进去。但是append就添加里面一个对象,并不会把里面的元素拿出来。a = [1,2]a.append((3,4)) a是 [1,2,(3,4)]a.extend((3,4)) 而这里的a是[1,2,3,4]my_list = []my_list.append(1)my_list.append("a")from collections
2021-06-01 16:11:29
246
原创 python上下文管理器
try的用法中return的返回值def exe_try(): try: print ("code started") raise KeyError return 1 except KeyError as e: print ("key error") return 2 else: print ("other error") return 3 finally:
2021-05-31 10:31:22
64
原创 python的私有属性和自省机制
私有属性from chapter04.class_method import Dateclass User: def __init__(self, birthday): self.__birthday = birthday def get_age(self): #返回年龄 return 2018 - self.__birthday.yearclass Student(User): def __init__(self, birt
2021-05-30 14:19:36
51
原创 类方法、静态方法和实例
class Date: #构造函数 def __init__(self, year, month, day): self.year = year self.month = month self.day = day def tomorrow(self): self.day += 1 def __str__(self): return "{year}/{month}/{day}".forma
2021-05-28 09:42:51
80
原创 python的鸭子类型和抽象基类
鸭子类型三个类实现同一个方法,就可以通过for循环去调用每个类的对象class Cat(object): def say(self): print("i am a cat!")class Dog(object): def say(self): print("dog")class Duck(object): def say(self): print("duck")animal_list = [Cat,Dog,Duck]f
2021-05-20 23:03:57
130
原创 python中的魔法函数
首先__xxx__,这样形式的函数为魔法函数。如果遍历对象,没有__getitem__方法,那么只能通过命名一个新的对象,从类中获取数据,再进行赋值、迭代。class Company(object): """ 魔法函数是__xxx__ 优先使用迭代器、然后使用getitem这个方法; 迭代器需要实现 __iter__(self),这个方法 """ def __init__(self,employee_list): self.employe
2021-05-18 22:19:04
67
原创 python中一切皆对象
在python的世界中,一切皆是对象。函数可以变成对象进行赋值,类也可以。def ask(name = "bobby"): print(name)class Person: def __init__(self): print("bobby1")obj_list = []obj_list.append(ask)obj_list.append(Person)for item in obj_list: print(type(item))函数中,一个函
2021-05-14 21:17:32
63
原创 python的自动回收机制
1、python中的is 和 ==在python中,赋值意味着是在贴标签,a = [1,2,3,4],就是将a贴在这个[1,2,3,4]这个对象当中。id(a)就是指a的对象是啥。a = [1,2,3,4]b = [1,2,3,4]#a和b不是同一个对象,因此返回falseprint(a is b)# a和b内容判断是否相等 ,因此返回trueprint(a == b)如果是 a = [1,2,3,4], b=a;那么b在添加[1,2,3,4,5],a也会跟着改动。2、 垃圾回收垃
2021-05-13 23:05:15
119
原创 dict和set的背后实现原理
from random import randintdef load_list_data(total_nums, target_nums): """ 从文件中读取数据,以list的方式返回 :param total_nums: 读取的数量 :param target_nums: 需要查询的数据的数量 """ all_data = [] target_data = [] file_name = "G:/慕课网课程/AdvancePython
2021-05-13 10:01:37
108
原创 python的set使用方法
set是无序、不重复 的集合,接受一个可迭代的对象s = {'a','b'} #set的初始化方式s.add('c')frozenset 不可变的类型s1 = frozenset("adcbe")向set添加数据another_set = set("cef")re_set = s.difference(another_set) #s - another_set 返回一个新的setre_set2 = s-another_set #re_set 和 re_set2是一样的re_
2021-05-12 22:50:03
351
原创 快排基于c++
1. 快排基础 快速排序的要点是先找到第一个元素的最终的位置,如何寻找就如下图所示,找到比4小的数,在找到比4大的数。核心就是如何把4这个数挪到正确的位置上。 下图中,l记录的是当前的元素,j记录<v和>v的分界点(对于j这个点上值多少不用去管),i是当前访问的元素。如果当e>v就直接放在后面。 如果当e<v这种情况,就需要把e放在前面橙色的部分。方法很简单,e和j位置上的元素互换(直接将e放到j的位置),而j++就好。 最后都结束了之后再把v这个元素放在j上。初版代
2021-05-12 21:08:30
69
原创 netsniff-dpi
netsniff-dpi 引言:本文回顾一下自己半年的项目,感慨颇多。回家乘着假期就把一些项目的点以及用到的知识点做一下整理。本次代码撰写是在netsniff这个原有的轮子上加上dpi的部分,能够在嵌入式的环境下提供采集、识别恶意流量以及报警功能。1. 项目概览 netsniff的代码庞大而复杂,而且功能非常丰富。所以我只把我所需要改动的代码一块进行一些提炼,其他的相关的功能我把他放在最后附录中以便查阅。下图是从流量采集到识别的整个宏观的框架。当启动netsniff-ng命令后,程序读取网卡,获取
2021-05-12 16:52:04
304
1
原创 python-dict方法
dict是属于mapping类型的,使用的方法就是直接定义一个花括号 { } 。在下面的代码中,列举了dict的一些常用的方法。这里涉及到浅拷贝和深拷贝的知识,因为python的内部是用c写的,所以原理也是相似。当使用浅拷贝时,新的对象的更改会带动,被拷贝的对象。原因:浅拷贝是将新的一根指针指向原有的内存块,并没有开辟新的内存块,因此会有变化。解决方法就是使用 import copy的方法 copy.deepcopy(xxx对象)"""@Time : 2021/5/11 22:03@Au
2021-05-11 23:01:53
122
原创 矩阵合并
1、 使用cat函数import torcha = torch.zeros((2,4))b = torch.ones((2,4))out = torch.cat((a,b),dim = 0)print(out)dim = 0的时候按照纵轴进行拼接行数dim = 1时候,按照横轴镜像列数拼接2、 使用stackstack是把两个维度进行独立拼接,形成一个新的维度。...
2021-04-23 16:37:37
1065
原创 tensor运算
1. tensor1.1tensor定义tensor表示为张量,用于描述任意维度的物体H×W×C×D则是高维(四维)张量。矩阵是二维张量定义出tensor一个2×3的矩阵a = torch.Tensor(2,3)要定义一个像a矩阵一样的,全为0的矩阵a = torch.Tensor(2,3)b = torch.zeros_like(b)print(b)print(b.type())随机矩阵a = torch.rand(2,2)生成满足正态分布的矩阵,下面对应的是均值为0,5个随
2021-04-08 16:43:51
1082
原创 用于二分类的机器学习模型评价
010预测negative正确 TN预测positive错误 FP1预测negative错误 FN预测positive正确 TP其中行代表真实值,列代表预测值举个列子,在下面表格中0代表健康人,1代表患有癌症的人。预测\真实010997812128这里面就可以看出有12个人没有患癌症,但是我们算法却错误的预测了他患了癌症。精准率precision=TPTP+FPprecision = \tfrac{TP}{T...
2021-03-24 15:02:13
263
原创 html的相对位置和绝对位置
相对位置和绝对位置<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>fixed</title> <link rel="stylesheet" href="cssLone.css"> <s...
2019-11-18 20:47:02
496
原创 java 单例模式
小记:在学习深度学习过程中,忙里偷闲学习一点java的东西,防止自己找不到工作。本次学习是的Java的单列模式。单例模式存在三个优点:1 在内存中只有一个对象,节省内存空间2 避免频繁的创建销毁对象,提高性能3 避免对共享资源的多重占用当然也存在缺点:1 比较难扩展2 如果实列化后的对象长期不利用 系统默认为垃圾进行回收 造成对象状态的丢失package com.company;...
2019-10-19 15:39:04
83
原创 test 训练数集代码加注释
import tensorflow as tfimport numpy as npfrom PIL import Imageimport mnist_backwardimport mnist_forwarddef restore_model (testPicArr): with tf.Graph().as_default() as g: x = tf.place...
2019-10-18 20:28:58
152
原创 java——static
static用法:static int price;那么此时无论new了几个对象都操作的同一块空间也许 一开始oo.price = 2000接着new了一个tt。 tt.price =150那么此时oo和tt的price 都是150 因为是同一块空间1、类对象共享2、类加载时产生,销毁时释放 ,生命周期长因此当静态时 最好用类.price = 3000当static eat(...
2019-10-17 14:11:29
144
原创 神经网络的模块化
前向传播就是搭建网络,设计网络结构 forward.pydef forward(x,regularizer): 定义前向传播过程 w= b= y= return ydef get_weight(shape,regularizer): w的形状和正则化regularizer的权重 w=tf.Va...
2019-10-16 11:51:23
428
原创 深度学习前奏——正则化
废话 不多说,直接上代码:```pythonimport tensorflow as tfimport numpy as npimport matplotlib.pyplot as plt;BATCH_SIZE = 30 # 30个网格坐标点seed = 2# 基于seed产生随机数rdm = np.random.RandomState(seed)X = rdm.rand...
2019-10-15 17:33:25
226
原创 搭建神经网络的八股过程——案列演示
搭建神经网络的八股过程1 准备import 常量定义 然后生成数据集 (数据是第一位 练习中可以用random来生成)2 前向传播定义输入、参数和输出 x= (输入为x 标准答案是y_) y_= w1= (第一层网络的参数w1) w2= (第二层网络的参数w2) a= y= (用矩阵 求出y)...
2019-10-14 18:39:36
249
原创 python中常用的for循环
在学习代码的时候,我遇到了这样的python语句。让我这种学习小白很是头疼。all_user = [user for user,sock in part1.items()]于是在不停地尝试之后,得到以下结论:首先我创建了一个字典part1 = {“name1”:“chen”,“name2”:“zong”}当代码:all_user = [user for user in part1....
2019-08-22 11:12:00
192
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人