Haward

欢迎交流学习
私信 关注
HawardScut
码龄6年

工作啦,有时比较忙没及时回复,望见谅。

  • 723,154
    被访问量
  • 171
    原创文章
  • 11,488
    作者排名
  • 170
    粉丝数量
  • 目前就职 某大厂
  • 于 2015-02-20 加入CSDN
获得成就
  • 获得260次点赞
  • 内容获得135次评论
  • 获得767次收藏
荣誉勋章
兴趣领域
  • #人工智能
    #自然语言处理
TA的专栏
  • 安全
    1篇
  • git
    2篇
  • 游戏安全
    3篇
  • vmware
    1篇
  • ssh
    1篇
  • 多线程
    2篇
  • 设计模式
    3篇
  • jvm
    2篇
  • AI论文解读
    4篇
  • java
  • linux
    13篇
  • Android
    5篇
  • 编译原理
    1篇
  • python
    16篇
  • 算法
    6篇
  • 机器学习中的数学
    6篇
  • c-c++
    15篇
  • NLP到word2vec实战
    3篇
  • 深度学习
    18篇
  • pandas
    4篇
  • pytorch
    11篇
  • NLP
    6篇
  • tensorflow
    1篇
  • 编程题
    10篇
  • 计算机基础
    10篇
  • java
    8篇
  • seaborn基础
    3篇
  • 排序
    1篇
  • XGBoost学习
    7篇
  • sklearn学习
    8篇
  • 大数据
    2篇
  • 机器学习基础
    15篇
  • NLP基础知识
    6篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

Docker基本使用

1、简介Docker 是一个开源的应用容器引擎,基本的概念如下:镜像(Image):类比文件系统,如ubuntu容器(Container):容器是镜像运行时的实体,把镜像比喻为类,则容器为其对象实例2、Docker环境搭建更新aptsudo apt-get update安装依赖sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ soft
原创
99阅读
0评论
0点赞
发布博客于 23 天前

基于so的hook简单实例源码

基于so的hook简单实例源码
rar
发布资源于 2 月前

基于frida的so函数hook实战

一、环境win10、python38、frida库、夜神模拟器(1)安装frida环境(a)fridapython -m pip install frida //运行python38版本//python -m module_name相当于python /path/to/module.py(当我们知道一个模块的名字,但不知道它的路径时,我们可以通过 -m 参数)假如以上方法出错,建议本地下载frida包安装 https://pypi.org/project/frida/#files(选择f
原创
169阅读
2评论
0点赞
发布博客于 2 月前

CMake 的简单使用

文章目录一、CMake介绍二、简单实例二、多源文件目录实例一、CMake介绍CMake是一种跨平台的构建工具,通过CMakeLists.txt 文件的编写来实现,其中CMakeLists.txt 文件主要用于生成 Makefile文件(通过“cmake PATH”命令),Makefile文件再通过make 命令进行编译,整个构建过程如下:编写CmakeLists.txt。执行“cmake PATH”命令生成 Makefile文件(PATH 是 CMakeLists.txt 文件所在的路径)。执行
原创
98阅读
0评论
0点赞
发布博客于 7 月前

Makefile入门

文章目录一、Makefile文件介绍二、Makefile文件的hello world编写1、编写格式2、实例二、Makefile的工作流程1、工作流程2、清除过程文件三、通配符的使用1、通配符2、实例四、Makefile变量的定义和赋值1、变量的定义与使用2、变量的赋值(1)简单赋值`:=`(2)递归赋值`=`(3)条件赋值`?=`(3)追加赋值`+=`五、目标文件的搜索(VPATH和vpath)1、VPATH2、vpath六、嵌套执行make一、Makefile文件介绍Makefile一般为Linux
原创
124阅读
0评论
0点赞
发布博客于 8 月前

vs配置依赖

环境介绍在win上搭建vs远程调试linux项目环境(gdbserver、vs的linux插件环境等)gcc/g++ 的-L和-l命令参数linux上的库文件名:lib+<库名>+.so (比如ncurses库,库文件名为ncurses,使用gcc/g++ 可直接为−lncurses )gcc/g++ 的-L和-l命令参数使用为:(1)−L<库文件所在路径>(2)−l<库名>例:−L/usr/lib ; −lncurses注意:在 /lib, /usr
原创
110阅读
0评论
0点赞
发布博客于 8 月前

基于Xposed的hook实战

一、Hook原理将需要修改的函数“钩住”,然后使用自定义的函数替换原来的函数,让程序执行自定义的函数,达到修改的目的。二、环境搭建经过root的模拟器:(1)在https://www.yeshen.com/ 中下载夜神模拟器(该模拟器在系统设置中默认开启root)(2)启动夜神模拟器,在终端执行adb connect 127.0.0.1:62001,将模拟器与AS关联,其中,62001是夜神模拟器的端口号Xposed框架的搭建:(1)在https://forum.xda-developers.
原创
761阅读
0评论
1点赞
发布博客于 9 月前

HookDemo.rar

基于Xposed的hook框架实现的demo,包括原代码、hook代码和Xposed的apk安装包,开发平台是windows
rar
发布资源于 9 月前

破解安卓程序的helloworld

一、环境及其工具win10、AS、Apktool反编译工具、反编译后的签名工具APKSignApktool反编译环境搭建:在https://github.com/iBotPeaches/Apktool 的Links/Downloads中下载apktool_2.4.1.jar,修改为apktool.jar,下载文件Apktool/scripts/windows/apktool.bat,将apktool.jar与apktool_2.4.1.jar放在同一目录,并且配置环境变量二、编写带签名的demo(
原创
204阅读
0评论
0点赞
发布博客于 9 月前

Apktools.rar

破解安卓程序的一个demo,压缩包包含apktool,签名工具,源代码,反编译后的代码,以及各个阶段的app,步骤说明等
rar
发布资源于 9 月前

APKSign.rar

安卓签名工具,用于对签名的app进行反编译,修改代码后重新生成app(此时没有签名),进行再次签名。
rar
发布资源于 9 月前

通过vmrun运行虚拟机

简介vmrun运行虚拟机可以减少资源的消耗,特别适用于linux虚拟机,通过vmrun命令行启动后,我们可以借助ssh协议登录无图形界面的本地服务器(当然,也可以通过图形界面登录查看IP地址等),而不必运行着消耗大量资源的图形界面。步骤:(1)在VMware安装的目录中找到"vmrun.exe",配置环境变量(2)启动:vmrun -T ws start "xxx\xxx\Ubuntu.v...
原创
1005阅读
0评论
0点赞
发布博客于 1 年前

ssh的简单使用

登录(从win登录到Linux)ssh username@ip退出(从Linux退出到win)exit从远程下载文件到本地(从Linux下载文件到win)scp username@ip:~/share.txt . //远程home目录下下载share.txt文件到本地当前目录从远程下载目录到本地(从Linux下载文件到win)scp -r username@ip:~/test...
原创
94阅读
0评论
0点赞
发布博客于 2 年前

Cocos2d-x环境搭建

1. 下载Cocos2d-x开发包这里下载的版本为V3.17.2(AS版本为2017)https://www.cocos.com/en/cocos2dx2. 把cocos安装包里的msvcr11.dll 复制到c盘SysWOW64文件下(win 64位系统)3. 运行demo(1)在cocos2d-x-3.17.2\build中用vs2017打开cocos2d-win32.sln...
原创
523阅读
0评论
0点赞
发布博客于 2 年前

虚函数和动态联编

关于虚函数(1)编译器对虚方法(virtual修饰的方法)使用动态联编,如下:Dog dog;Animal* pAnimal;pAnimal = &dog;pAnimal->eat();假如eat()方法是虚方法,则调用的是子类的eat()方法(动态联编,可以理解为基类的eat()方法是虚设的);否则(不使用virtual修饰的方法),调用的是基类的eat()方法(静...
原创
195阅读
0评论
0点赞
发布博客于 2 年前

c++内存模型和名称空间

一、头文件1. c++程序一般分为3部分:头文件、实现头文件的源文件、调用函数的源文件2. 头文件常包含的内容(1)函数原型(2)使用#define或者const定义的符号常量被声明为const的数据具有特殊的链接属性(外部/内部/无),具备的链接性为内部,其作用域为包含头文件的当前源文件(类似static,但const修饰的为常量,不可改变其值),不会出现多次定义的情况,所以可行(...
原创
107阅读
0评论
0点赞
发布博客于 2 年前

线程池的简单实现

线程池介绍(1)在没有采取线程池技术的时候,往往是一个任务一个线程的方式,这样将会创建数以万计的线程,使得操作系统频繁的进行线程上下文切换,增加系统的负载(线程的创建和消亡都是需要消耗系统资源的)(2)线程池技术为了解决这个问题而产生,预先创造了若干数量的线程(Worker 线程),并且将线程的创建控制交给ThreadPool类,而不是客户端(客户端将任务job放入工作队列jobs后便返回)...
原创
105阅读
0评论
0点赞
发布博客于 2 年前

并发编程基础

1、线程简介(1)线程是操作系统调度的最小单元;(2)在一个进程里可以创建多个线程,这些线程都有各自的计数器、堆栈和局部变量等属性,并且能够访问共享的内存变量;(3)一个程序作为一个进程来运行,程序运行过程中可以创建多个线程;(4)一个线程在一个时刻只能运行在一个处理器上,多线程程序可以充分利用多处理器执行任务;(5)线程优先级:线程优先级决定线程需要多或者少分配处理器资源的线程属性;(...
原创
191阅读
0评论
0点赞
发布博客于 2 年前

(三)设计模式——观察者模式

角色: 抽象目标、具体目标、抽象观察者、具体观察者AB思想: 观察者向被观察对象即目标注册实例,然后其更新的行为随被观察者的转态改变而改变========================抽象的被观察对象==================================// 抽象的被观察对象import java.util.ArrayList;public abstract class ...
原创
73阅读
0评论
0点赞
发布博客于 2 年前

(三)java虚拟机——垃圾回收算法

常用的垃圾回收方法有:引用计数法、标记清除法、复制算法引用计数法思想:引用一个对象,则引用计数器+1;引用失效,则引用-1;回收计数为0的对象缺点:(1)没法处理相互引用的对象(实际上这些对象需要被回收却没法回收,但是他们相互引用,计数不为0)(2)频繁的+1,-1对系统性能有影响标记清除法思想:标记阶段:标记从根节点开始的所有可达对象;清除阶段:清除所有未被标记的对象缺点:产生空间...
原创
58阅读
0评论
0点赞
发布博客于 2 年前

(二)java虚拟机——常用java虚拟机参数

读懂GC日志(1)代码:public class Main { public static void main(String[] args) { TestClass testClass = new TestClass(); testClass.localvar1(); testClass.localvar2(); }}class TestClass { ...
原创
70阅读
0评论
0点赞
发布博客于 2 年前

(一)java虚拟机——初步认识

java虚拟机的基本结构java虚拟机的参数设置java [虚拟机参数] class [main()函数参数]实例:public class SimpleArgs { public static void main(String[] args) { for(int i=0;i<args.length;i++) { System.out.println("ar...
原创
61阅读
0评论
0点赞
发布博客于 2 年前

LaTeX公式转MathType公式

LaTex在线编辑器https://www.codecogs.com/latex/eqneditor.phpLaTeX公式转MathType公式步骤:方式一:打开链接,复制编写的LaTex公式,加入$$中,右键选择如图,复制代码到word的MathType公式编辑器里面即可。https://www.zybuluo.com/mdeditor方式二:类似地,打开链接http://eng...
原创
5773阅读
0评论
2点赞
发布博客于 2 年前

(二)设计模式——简单工厂、工厂方法

一、简单工厂模式注意: 简单工厂实际上不算设计模式中的一种角色: 抽象产品角色、具体产品角色AB等、唯一的一个工厂(通过传递一个参数给工厂,返回具体的产品)缺点: 只有一个工厂,其职责过重实例: 电视================================1、抽象产品=================================// 抽象产品(可以是抽象类或者接口)pu...
原创
79阅读
0评论
0点赞
发布博客于 2 年前

(一)设计模式——单例模式

简单介绍单例模式为避免资源开销等而设计,具体做法是对构造器公开访问改为类内部访问,即private的访问属性,同时提供一个静态方法让外部请求得到该类的实例对象。经典的单例模式实现(需要的时候在创建该实例)public class Singleton { private static Singleton instance; private Singleton() {} ...
原创
62阅读
0评论
0点赞
发布博客于 2 年前

gitlab搭建与使用

1.gitlab搭建下载包文件wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu/pool/xenial/main/g/gitlab-ce/gitlab-ce_10.7.2-ce.0_amd64.deb安装dpkg -i gitlab-ce_10.7.2-ce.0_amd64.deb配置访问地址(sudo打开/etc/gi...
原创
721阅读
0评论
0点赞
发布博客于 2 年前

TensorFlow2.0部署

1. 安装tensorflow2.0这里的环境都是基于Linux上进行先升级pippython3 -m pip install --upgrade pip接着python3 -m pip install tensorflow==2.0.0-beta1官方安装文档假如网速太慢,可以离线下载whl安装包https://pypi.tuna.tsinghua.edu.cn/simple/te...
原创
2665阅读
0评论
0点赞
发布博客于 2 年前

tflite_android_python.rar

tensorflow2.0部署,首先训练keras模型,然后转tflite,最后在安卓上调用
rar
发布资源于 2 年前

linux上构建交叉编译环境

1. 下载NDKhttps://developer.android.google.cn/ndk/downloads/2. 解压NDK,并且配置环境变量export PATH=/xxx/android-ndk-r20:$PATH3. 编译特定平台的工具链(这里是x86)(1)在NDK的build/tools目录有make-standalone-toolchain.sh 的程序让用户创建标...
原创
534阅读
0评论
0点赞
发布博客于 2 年前

jniProject.rar

在linux上交叉编译x86系统得到so库,供安卓x86调用的代码。
rar
发布资源于 2 年前

pytorch的部署——把pytorch模型集成到so库

前沿需要pytorch1.0版本及以上,linux环境下进行,借助cmake编译1.编写保存pytorch模型代码//main.pyimport torchclass MyModule(torch.jit.ScriptModule): def __init__(self, N, M): super(MyModule, self).__init__() ...
原创
6367阅读
3评论
1点赞
发布博客于 2 年前

custom_ops2.rar

pytorch的部署,先打包成共享库so文件,然后被c++代码调用。
rar
发布资源于 2 年前

conda和pip的基本使用

1.conda查看环境conda info -e2. 指定安装包到某个环境conda: 激活环境,conda install xxxpip: python -m pip install xxx
原创
1434阅读
0评论
0点赞
发布博客于 2 年前

CMake 简单使用

1.介绍CMake可实现跨平台编译, 是一种优秀的编译配置工具。2.Linux下的cmake编写demo(1)建立工程目录cmakeDemo(2)编写c/c++代码main.c//main.c#include<stdio.h>int main(){ printf("hello cmake!
"); return 0;}(3)编写CMakeList...
原创
213阅读
0评论
0点赞
发布博客于 2 年前

java8的stream用于排序

import java.util.ArrayList;import java.util.Comparator;import java.util.List;import java.util.function.Function;import java.util.stream.Collectors;public class Person {private int id;private in...
原创
525阅读
0评论
0点赞
发布博客于 2 年前

AS上进行NDK开发

1.基本环境CMake、NDK、Support Repository、LLDB(如图,安装后配置…\Sdk
dk-bundle环境变量)2. 生成jni头文件javah 包名.类名其中类中定义了jni接口package com.example.mi.demoso;public class JNITest { //通过该接口调用c/c++代码 public na...
原创
301阅读
0评论
0点赞
发布博客于 2 年前

DemoSo.rar

DNK开发demo代码,实现一个java和c/c++的编程调用,打包成共享库so.
rar
发布资源于 2 年前

Windows10远程桌面Ubuntu

更新软件列表sudo apt-get update安装xrdpsudo apt-get install xrdp安装vnc4serversudo apt-get install vnc4server安装xubuntu-desktopsudo apt-get install xubuntu-desktop向xsession中写入xfce4-session(每个用户自己运行此行...
原创
506阅读
0评论
0点赞
发布博客于 2 年前

隐马尔可夫模型(HMM)

介绍隐马尔可夫模型由:初始状态概率向量π\piπ、转态转移概率矩阵A和观测概率矩阵B决定。隐马尔可夫模型表示如下:λ=(A,B,π)\lambda = (A,B,\pi)λ=(A,B,π)其中,A,B,πA,B,\piA,B,π称为隐马尔可夫模型的三要素,隐马尔可夫模型,如下图所示:Q是所有可能的状态集合,V是所有可能观测的集合。举例如下:假设有3个盒子,每个盒子里面的球一共有10...
原创
288阅读
0评论
0点赞
发布博客于 2 年前

java连续读取控制台的输入

import java.util.Scanner;public class Main{ public static void main(String[]args) { Scanner sc = new Scanner(System.in); while(sc.hasNext()) { String s = s...
原创
3972阅读
0评论
4点赞
发布博客于 2 年前

python连续读取控制台的输入

def run(x,y): print(x,y)if __name__=="__main__": while True: try: ls = input("输入x y
").split(" ") x = int(ls[0]) y = int(ls[1]) run(x...
原创
5444阅读
0评论
0点赞
发布博客于 2 年前

LSTM网络结构

1.介绍假设词向量长度为128,隐含层神经元个数为256。LSTM中引入3个门,即输入门、遗忘门、输出门;及其他组件:候选记忆细胞、记忆细胞。2.时间t时候:各个组件(3个门+候选记忆细胞、记忆细胞)如上图所示,对于每个组件有:(1)输入门:ItI_tIt​It=σ(XtWihI+Ht−1WhhI+bihI)I_t = \sigma (X_tW_{ih}^I+H_{t-1}W_{h...
原创
2918阅读
0评论
1点赞
发布博客于 2 年前

Java手动抛出异常&python手动抛出异常

1. javaif(条件){ throw new RuntimeException("描述。。。"); //直接手动抛出异常}2. pythonif 条件: raise RuntimeError('描述。。。') #直接手动抛出异常
原创
435阅读
0评论
0点赞
发布博客于 2 年前

ac自动机

1. 前言AC自动机:Aho-Corasick automation,是一种多模式匹配算法。它是在模式树(字典树)Trie和KMP模式匹配算法的基础上进行的。其中,KMP算法是单模式串的字符匹配算法(依次遍历每个元素进行比较的朴素匹配算法+借助于next指针实现)。2. ac自动机主要包括三个过程:(1)建立字典树(2)构建字典树的每个结点的fail指针(3)查找过程比如有模式:“...
原创
254阅读
0评论
0点赞
发布博客于 2 年前

TF-IDF的定义及计算

假设有语料库一共只要2篇文档:d1d_1d1​和d2d_2d2​,其中d1=(A,B,C,D,A)d_1=(A,B,C,D,A)d1​=(A,B,C,D,A)一共有5个单词组成;d2=(B,E,A,B)d_2=(B,E,A,B)d2​=(B,E,A,B),一共有4个单词组成。1.TFTF即词频(Term Frequency),每篇文档中关键词的频率(该文档单词/该文档单词总数),对于文档d1...
原创
8311阅读
0评论
1点赞
发布博客于 2 年前

git的配置与使用

1. 配置(1)生成密钥对cd ~/.ssh #安装后一般在这ssh-keygen -t rsa -C &quot;your_email@youremail.com&quot; #生成秘钥,假如没有cat ~/.ssh/id_rsa.pub #查看秘钥(2)ssh密钥添加到github把该秘钥复制,填入github的setting中的ssh中(3)来配置你的用户名和邮箱git config --g...
原创
222阅读
0评论
0点赞
发布博客于 2 年前

apt-get安装和ubuntu源码编译安装

1. apt-get安装apt一般直接安装已经编译好的可执行文件,会直接帮你处理依赖关系,apt-get install安装目录是包的维护者确定的,不是用户。系统安装软件一般在/usr/share,可执行的文件在/usr/bin,配置文件可能安装到了/etc下等。文档一般在 /usr/share;可执行文件 /usr/bin;配置文件 /etc;lib文件 /usr/lib。2. ubuntu...
原创
4217阅读
0评论
5点赞
发布博客于 2 年前

《Recurrent Models of Visual Attention》论文网络结构解读

1.数据图片数据n*1*28*28,一共有n张图片,图片通道数为1,高宽都是282.网络结构可以分为以下几部分:(1)glimpse_network()集中关注图片的局部信息:内容和位置(2)core_network()实际上是RNN网络,处理glimpse_network()输出的重要子图。(3)location_network()处理core_network()输出的信息,...
原创
784阅读
0评论
0点赞
发布博客于 3 年前

《Character-level convolutional networks for text classification》论文网络结构解读

1.数据比如有一条数据【x=“Simultaneous Tropical Storms are Very Rare”】.则把该句子的大写字母全部表示成小写,构建char字符集的词汇表如下(这里词汇表长度为70(69+1,即其他的不在词汇表的表示为0)):数据可以表示为x=70X1014 (高X宽,即70个特征,每个特征的长度为1014),该矩阵初始为0,反向依次遍历【x=“simultane...
原创
898阅读
0评论
0点赞
发布博客于 3 年前

《Convolutional Neural Networks for Sentence Classification》论文结构解读

1.数据以某一双鞋子为例,评论结果作为标签(2分类:好评,差评)【穿了一段时间,不错,喜欢的下单吧;好评】【鞋子收到了,不是很满意。没有吊牌,一直都是还是只有我这一双是;差评】数据处理步骤:把所有评论数据集分词,去除停用词,然后构建word2index,然后表示“句子”,以“穿了一段时间,不错,喜欢的下单吧”为例子,分词后为【穿了/一段/时间/,/不错/,/喜欢/的/下单/吧】,则表示成...
原创
634阅读
3评论
1点赞
发布博客于 3 年前

集成学习,方差,偏差

方差(Variance)当前用来训练的数据不具有代表性,但是数据量多的时候可以减少方差。偏差(Bias)选择的模型不正确(模型偏了),怎么增加数据也无效。集成学习与方差,偏差关系平均方法通常比其任何一个基分类器效果好因为尝试去降低模型的方差(平…方,模型没有变化,这是利用多个模型进行决策),而提升方法尝试去降低模型的偏差。(因为提升方法不断修正模型)参考:从集成学习到模型的偏差和方差...
原创
629阅读
0评论
0点赞
发布博客于 3 年前

(六) word2vec原理

Word2Vec 的有两种训练模型:CBOW (Continuous Bag-of-Words Model) 和 Skip-gram (Continuous Skip-gram Model)。1、步骤(以CBOW为例)(1)处理语料库:把语料库划分成一连串的单词,把这些一连串的单词去重,构建词汇表word_to_ix,即word_to_ix={单词1,单词2,…,单词n}(2)构建CBOW模...
原创
293阅读
0评论
0点赞
发布博客于 3 年前

模型融合

一、 Stacking代码如下:# coding=utf8from sklearn import datasetsfrom sklearn.ensemble import RandomForestClassifier, ExtraTreesClassifier, GradientBoostingClassifierfrom sklearn.cross_validation impor...
原创
1059阅读
2评论
0点赞
发布博客于 3 年前

(二)pytorch可视化

import torchfrom tensorboardX import SummaryWriter#writer = SummaryWriter() # 声明writer对象,保存的文件夹,默认是runs文件夹(在当前目录运行tensorboard --logdir runs) #在当前目录运行tensorboard --logdir logwriter = SummaryWriter...
原创
587阅读
0评论
0点赞
发布博客于 3 年前

(一)pytorch可视化

import torchfrom torch.autograd import Variableimport torch.nn as nnfrom graphviz import Digraph#复制该函数def make_dot(var, params=None): &quot;&quot;&quot; Produces Graphviz representation of PyTorch autograd ...
原创
737阅读
0评论
0点赞
发布博客于 3 年前

(五)N-gram语言模型的数据处理

一、步骤数据集说明:一段英文 (1)分词:把原始的英文分词,只保留词之间的顺序不变,多个句子也是看出整体进行分词。 (2)统计词频:按照n元进行词频统计,比如“I love NLP I enjoy it”当n=2时候,可以划分为(【I love】,【love NLP】,【NLP I】…),分别统计【I love】,【love NLP】等出现的次数。(在朴素贝叶斯中只是统计一个词,这里是统计...
原创
1092阅读
2评论
0点赞
发布博客于 3 年前

(四)N-gram语言模型与马尔科夫假设

1、从独立性假设到联合概率链朴素贝叶斯中使用的独立性假设为 P(x1,x2,x3,...,xn)=P(x1)P(x2)P(x3)...P(xn)(1)(1)P(x1,x2,x3,...,xn)=P(x1)P(x2)P(x3)...P(xn)P(x_1,x_2,x_3,...,x_n)=P(x_1)P(x_2)P(x_3)...P(x_n) \tag{1} 去掉独立性假设,有下面这个恒等...
原创
6028阅读
1评论
7点赞
发布博客于 3 年前

(三)朴素贝叶斯运用——文本分类

1、贝叶斯理论当我们有样本(包含特征和类别)的时候,我们非常容易通过p(x)p(y|x)=p(y)p(x|y)p(x)p(y|x)=p(y)p(x|y)p(x)p(y|x) = p(y)p(x|y)统计得到 p(特征|类别) .即p(特征)p(类别|特征)=p(类别)p(特征|类别)p(特征)p(类别|特征)=p(类别)p(特征|类别)p(特征)p(类别|特征) = p(类别)p(特征|类别...
原创
12822阅读
8评论
7点赞
发布博客于 3 年前

(二)贝叶斯和朴素贝叶斯

1、贝叶斯公式P(Y|X)=P(X|Y)P(Y)P(X)P(Y|X)=P(X|Y)P(Y)P(X)P(Y|X)=\frac{P(X|Y)P(Y)}{P(X)} 由P(Y,X)=P(Y|X)P(X)=P(X|Y)P(Y)P(Y,X)=P(Y|X)P(X)=P(X|Y)P(Y)P(Y,X) = P(Y|X)P(X)=P(X|Y)P(Y)推导而来,其中 P(Y) 叫做先验概率, P(Y|X)...
原创
235阅读
0评论
1点赞
发布博客于 3 年前

(一)jieba分词

jieba分词1、全模式按照前后的顺序分词,句子有交叉import jiebaseg_list = jieba.cut("我喜欢自然语言处理", cut_all=True)print("Full Mode: " + "/ ".join(seg_list)) # 全模式Building prefix dict from the default dictionary ...Du...
原创
730阅读
0评论
1点赞
发布博客于 3 年前

bagging与随机森林

1、bagging步骤如下: (1)从样本集合中有放回地选出n个样本 (2)在所有属性上,对这n个样本建立分类器(分类器可以是决策树,SVM,Logistic回归等) (3)重复步骤(1)、(2)m次,得到m个分类器 (4)用m个分类器对数据的预测结果进行投票2、随机森林步骤如下: (1)从样本集合中有放回地选出n个样本 (2)从所有属性中选出k个属性,对这n个样本建立分类...
原创
329阅读
0评论
0点赞
发布博客于 3 年前

提升树boosting tree模型

1、提升树的定义提升树是以分类树或者回归树为基本分类器的提升方法。以决策树为基函数的提升方法称为提升树(boosting tree)2、与AdaBoost算法的提升方法的区别提升树算法只需将Adaboost算法的基本分类器限制为二分类树(对于二分类问题而言)即可,可以说提升树是Adaboost算法的特殊情况。3、回归问题的提升树算法...
原创
592阅读
0评论
1点赞
发布博客于 3 年前

提升方法AdaBoost算法

1、提升方法提升方法就是从弱学习算法出发,反复学习,得到一系列弱分类器(又称为基本分类器),然后组合弱分类器,构成一个强分类器。大多数提升的方法都是改变训练数据的的概率分布(训练数据的权值分布)。2、提升方法相关问题(1)在每一轮如何改变训练数据的权值或者概率分布?Adaboost的做法就是,提高那些前一轮弱分类器错误分类样本的权值,而降低那些被正确分类样本的权值。(2)如...
原创
153阅读
0评论
0点赞
发布博客于 3 年前

信息论

1、信息熵信息熵是度量样本集合纯度最常用的一种指标。假设样本集合D中第kkk个类所占的比例为pkpkp_k,一共有KKK个类,则D的信息熵定义为 Ent(D)=−∑k=1Kpklog2pk(1)(1)Ent(D)=−∑k=1Kpklog2pkEnt(D)=-\sum_{k=1}^{K}p_klog_2p_k \tag{1} 信息熵Ent(D)的值越小,则D的纯度越高,即集合D中几乎全部...
原创
1597阅读
0评论
1点赞
发布博客于 3 年前

核函数

1、定义设χχ\chi 是输入空间(欧式空间RnRnR^n的子集或离散集合),又设H为特征空间(希伯尔特空间),如果存在一个从χχ\chi 到H的映射 ϕ(x):χ→H(1)(1)ϕ(x):χ→H\phi(x):\chi \rightarrow H \tag{1} 使得对所有x,z∈χx,z∈χx,z \in \chi,函数K(x,z)K(x,z)K(x,z)满足条件 K(x,z)=...
原创
270阅读
0评论
0点赞
发布博客于 3 年前

overfitting过拟合问题

1、定义在training data上的error渐渐减小,但是在验证集上的error却反而渐渐增大(过拟合是泛化的反面)2、解决办法(1)正则化(Regularization)L2正则化:目标函数中增加所有权重w参数的平方之和, 逼迫所有w尽可能趋向零但不为零. 因为过拟合的时候, 拟合函数需要顾忌每一个点, 最终形成的拟合函数波动很大, L2正则化的加入就惩罚了权重变大的趋势....
原创
257阅读
0评论
0点赞
发布博客于 3 年前

LR模型推导

1、定义二项逻辑斯谛回归模型,是如下的条件概率分布。 P(Y=1|x)=ewx1+ewx(1)(1)P(Y=1|x)=ewx1+ewxP(Y=1|x)= \frac{e^{wx}}{1+e^{wx}} \tag{1}P(Y=0|x)=11+ewx(2)(2)P(Y=0|x)=11+ewxP(Y=0|x)= \frac{1}{1+e^{wx}} \tag{2} 注意,这里为了方便...
原创
769阅读
3评论
0点赞
发布博客于 3 年前

格雷编码

题目:格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。 给定一个代表编码总位数的非负整数 n,打印其格雷编码序列。格雷编码序列必须以 0 开头。 输入: 2 输出: [0,1,3,2] 解释: 00 - 0 01 - 1 11 - 3 10 - 2对于给定的 n,其格雷编码序列并不唯一。 例如,[0,2,3,1] 也是一个有效的格雷编码序列。0...
原创
1266阅读
0评论
0点赞
发布博客于 3 年前

(三)拉格朗日乘子法——对偶问题

给出不等式约束优化问题 minx&nbsp;f(x)s.t.&nbsp;&nbsp;&nbsp;hi(x)=0,&nbsp;i=1,2,...,m&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gj(x)≤0,&nbsp;j=1,2,...,n(1)(1)minx&nbsp;f(x
原创
1693阅读
0评论
2点赞
发布博客于 3 年前

(二)拉格朗日乘子法——KKT条件

假设目标函数是求解f(x,y)=x2+y2f(x,y)=x2+y2f(x,y)=x^2+y^2的最小问题。 (1)假设约束条件是h(x,y)=x+y⩽1h(x,y)=x+y⩽1h(x,y)=x+y \leqslant 1,即 ⎧⎩⎨⎪⎪minf(x,y)=x2+y2s.th(x,y)=x+y⩽1{minf(x,y)=x2+y2s.th(x,y)=x+y⩽1\left\{\begin{matr...
原创
337阅读
0评论
1点赞
发布博客于 3 年前

(一)拉格朗日乘子法——分析推导

如果z=f(x,y)z=f(x,y)z=f(x,y)在条件g(x,y)=0g(x,y)=0g(x,y)=0的条件下,在点(x0,y0)(x0,y0)(x_0,y_0)取得极值,如下图所示。 那么,f(x,y)f(x,y)f(x,y)的梯度与g(x,y)g(x,y)g(x,y)的梯度平行,即向量(fx′(x0,y0),fy′(x0,y0))(fx′(x0,y0),fy′(x0,y0))({f_...
原创
4457阅读
1评论
6点赞
发布博客于 3 年前

(一)SVM推导

SVM模型就是用一个超平面H把正负样本分开的模型,如图1所示。1、超平面的定义假设w→w→\overrightarrow{w}是垂直超平面H的法向量,x−−→x−→\overrightarrow{x_-}是一个负样本,x+−→x+→\overrightarrow{x_+}是一个正样本,x−−→x−→\overrightarrow{x_-}、x+−→x+→\overrightarrow{x_...
原创
656阅读
0评论
0点赞
发布博客于 3 年前

论文《Masteing the game of Go without human knowledge》解读

1、整体解读AlphaGo Zero中使用的是强化学习方法,使用的深度神经网络记为fθfθf_\theta (其中θθ\theta 是网络的参数)。网络的输入是棋盘状态sss(sss中表示了当前玩家落子的信息,对手的落子信息,棋盘最后一步落子的信息,当前的棋盘转态谁是先手等信息,即棋盘的历史信息和当前信息)。网络的输出是(p,v)(p,v)(p,v),其中ppp是当前玩家在局面sss状态下,即...
原创
517阅读
0评论
0点赞
发布博客于 3 年前

蒙特卡洛树搜索

蒙特卡洛树搜索的基本概念蒙特卡洛树搜索会多次模拟博弈,并尝试根据模拟结果预测最优的移动方案。蒙特卡洛树搜索的主要概念是搜索,即沿着博弈树向下的一组遍历过程。单次遍历的路径会从根节点(当前博弈状态)延伸到没有完全展开的节点,未完全展开的节点表示其子节点至少有一个未访问到。遇到未完全展开的节点时,它的一个未访问子节点将会作为单次模拟的根节点,随后模拟的结果将会反向传播回当前树的根节点并更新博弈树的...
原创
5571阅读
0评论
7点赞
发布博客于 3 年前

Z字形变换

题目: 将字符串 “PAYPALISHIRING” 以Z字形排列成给定的行数: P A H N A P L S I I G Y I R 之后从左往右,逐行读取字符:”PAHNAPLSIIGYIR” 思路: 通过从左向右迭代字符串,我们可以轻松地确定字符位于 Z 字形图案中的哪一行。 算法 我们可以使用 min(numRows,len(s))min(numRow...
原创
604阅读
0评论
0点赞
发布博客于 3 年前

最长公共子串——动态规划

题目:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。 示例: 输入: “babad” 输出: “bab” 注意: “aba”也是一个有效答案。思想:动态规划 步骤: 第一步:确定子问题。 在这一步重点是分析那些变量是随着问题规模的变小而变小的, 那些变量与问题的规模无关。 第二步:确定状态:根据上面找到的子问题来给你分割的子问题限定状态 ...
原创
78阅读
0评论
0点赞
发布博客于 3 年前

xgboost调参

import pickleimport xgboost as xgbimport numpy as npfrom sklearn.model_selection import KFold, train_test_split, GridSearchCVfrom sklearn.metrics import confusion_matrix, mean_squared_errorfrom ...
原创
879阅读
0评论
0点赞
发布博客于 3 年前

spark集群搭建

前言spark环境的搭建依赖于hadoop,所以搭建spark集群之前先搭建hadoop集群。一、hadoop环境搭建1、环境介绍3台机器集群: 192.168.179.133 master 192.168.179.134 node1 192.168.179.135 node2 2、修改各个虚拟机的hostname和host(1)以master上机器为...
原创
76阅读
0评论
0点赞
发布博客于 3 年前

fire的使用

1、安装pip install fire2、使用import firedef add(a,b): c=a+b return cdef sub(a,b): return a-bif __name__=='__main__': fire.Fire()命令行如下:python test.py sub --a 1 --b 3 或...
原创
881阅读
0评论
0点赞
发布博客于 3 年前

(八)sklearn神经网络

1、分类from sklearn.neural_network import MLPClassifierX = [[0., 0.], [1., 1.]]y = [0, 1]#solver : {‘lbfgs’, ‘sgd’, ‘adam’}, default ‘adam’clf = MLPClassifier(solver='lbfgs', alpha=1e-5, ...
原创
2212阅读
0评论
0点赞
发布博客于 3 年前

(七)sklearn绘制验证曲线

1、绘制验证曲线 在此图中,随着内核参数gamma的变化,显示了SVM的训练分数和验证分数。 对于非常低的gamma值,可以看到训练分数和验证分数都很低。这被称为欠配合。 gamma的中值是两个分数的高值,即分类器表现相当好。如果gamma太高,则分类 器将过度拟合,这意味着训练分数良好但验证分数较差。import matplotlib.pyplot as pltimport num...
原创
3697阅读
0评论
0点赞
发布博客于 3 年前

(六)sklearn调整估计器的超参数

1、比较随机搜索RandomizedSearchCV和超参数估计的网格搜索GridSearchCV 随机搜索和网格搜索探索完全相同的参数空间。参数设置的结果非常相似,而随机搜索 的运行时间则大大降低。随机搜索的性能稍差,尽管这很可能是噪声效应,并且不会延 续到保持测试集。 在实践中,只选择那些被认为最重要的参数。 import numpy as npfrom time imp...
原创
853阅读
0评论
0点赞
发布博客于 3 年前

(五)skrean交叉验证:评估评估器的性能

import numpy as npfrom sklearn.model_selection import train_test_splitfrom sklearn import datasetsfrom sklearn import svmiris = datasets.load_iris()iris.data.shape, iris.target.shape((150, 4),...
原创
616阅读
0评论
0点赞
发布博客于 3 年前

(四)skearn-特征选择

1、删除方差低的特征from sklearn.feature_selection import VarianceThresholdX = [[0, 0, 1], [0, 1, 0], [1, 0, 0], [0, 1, 1], [0, 1, 0], [0, 1, 1]]按照公式Var[X]=p(1−p)Var[X]=p(1−p)\mathrm{Var}[X] = p(1 - p)给出,下...
原创
887阅读
0评论
0点赞
发布博客于 3 年前

(三)skearn-增量PCA

当要分解的数据集太大而无法放入内存时,增量主成分分析(IPCA)通常用作主成分分析 (PCA)的替代。IPCA使用与输入数据样本数无关的内存量为输入数据建立低秩近似。它仍 然依赖于输入数据功能,但更改批量大小可以控制内存使用量。import numpy as npimport matplotlib.pyplot as pltfrom sklearn.datasets import...
原创
2238阅读
0评论
0点赞
发布博客于 3 年前

(二)sklearn降维——PCA和LDA

线性判别分析(LDA)尝试识别占类之间差异最大的属性。特别地,与PCA相比,LDA是使用已知类标签的监督方法。import matplotlib.pyplot as pltfrom sklearn import datasetsfrom sklearn.decomposition import PCAfrom sklearn.discriminant_analysis import L...
原创
2521阅读
0评论
0点赞
发布博客于 3 年前

(一)sklearn数据预处理

from sklearn import preprocessingimport numpy as npX_train = np.array([[ 1., -1., 2.], [ 2., 0., 0.], [ 0., 1., -1.]])1、使得均值0,方差1X_scaled = preproce...
原创
445阅读
0评论
0点赞
发布博客于 3 年前

(七)XGBoost融合sklearn

APIScikit-Learn API(Scikit-Learn Wrapper interface for XGBoost.)import pickleimport xgboost as xgbimport numpy as npfrom sklearn.model_selection import KFold, train_test_split, GridSearchCVfr...
原创
411阅读
0评论
0点赞
发布博客于 3 年前

(六)XGBoost使用交叉验证

import numpy as npimport xgboost as xgb### load data in do trainingdtrain = xgb.DMatrix(basePath+'data/agaricus.txt.train')param = {'max_depth':2, 'eta':1, 'silent':1, 'objective':'binary:logisti...
原创
10060阅读
2评论
3点赞
发布博客于 3 年前

(五)xgboost中拟合广义线性模型

import xgboost as xgb### this script demonstrate how to fit generalized linear model in xgboost# basically, we are using linear model, instead of tree for our boosters##dtrain = xgb.DMatrix(bas...
原创
884阅读
0评论
0点赞
发布博客于 3 年前

(四)XGBoost——预测用1棵树木vs全部树

#预测1棵树木vs全部树木import numpy as npimport xgboost as xgb### load data in do trainingdtrain = xgb.DMatrix('/home/b8204/HawardData/xgboost/demo/data/agaricus.txt.train')dtest = xgb.DMatrix('/home/b820...
原创
1199阅读
0评论
0点赞
发布博客于 3 年前

(三)XGBoost数据接口

import xgboost as xgb#数据接口:(1)逗号分隔值(CSV)文件(2)NumPy 2D阵列(3)XGBoost二进制缓冲区文件#1.将CSV文件加载到DMatrix(train.csv是文件名,第0列是lable)# label_column specifies the index of the column containing the true la...
原创
883阅读
0评论
0点赞
发布博客于 3 年前

(二)XGBoost之DART booster

XGBoost主要结合了大量的回归树和较小的学习率。在这种情况下,早期添加的树木很重要,而后期添加的树木并不重要。Vinayak和Gilad-Bachrach提出了一种新的方法,将深度神经网络社区的辍学技术添加到增强的树木中,并在某些情况下报告了更好的结果。——DART booster(解决过度拟合问题)import xgboost as xgb# 读数据dtrain = xgb...
原创
3694阅读
0评论
0点赞
发布博客于 3 年前

(一)XGBoost入门

import xgboost as xgb# 读数据dtrain = xgb.DMatrix('xxx/xgboost/demo/data/agaricus.txt.train')dtest = xgb.DMatrix('xxx/xgboost/demo/data/agaricus.txt.test')[18:30:02] 6513x127 matrix with 143286 e...
原创
478阅读
0评论
0点赞
发布博客于 3 年前

python的assert基本用法

检查条件,不符合就终止程序a=-1#报错assert a&amp;gt;0,&quot;a超出范围&quot;#正常运行assert a&amp;lt;0
原创
91298阅读
6评论
54点赞
发布博客于 3 年前

python添加搜索路径

1、作用导入模块,数据时候只需要把前面的路径加入sys.path2、实现import sys//sys.path//后面添加sys.path.append('你的模块的名称')//第0个位置添加sys.path.insert(0,'模块的名称')...
原创
1662阅读
0评论
0点赞
发布博客于 3 年前

启动jupyter notebook配置虚拟环境

1、安装ipykernel:conda install ipykernel2、为虚拟环境下创建kernel文件:conda install -n 环境名称 ipykernel3、激活conda环境: source activate 环境名称,将环境写入notebook的kernel中python -m ipykernel install --user --nam...
原创
7761阅读
5评论
9点赞
发布博客于 3 年前

冒泡排序

def bubble_sort(nums): for i in range(len(nums) - 1): # 这个循环负责设置冒泡排序进行的次数 for j in range(len(nums) - i - 1): # j为列表下标 if nums[j] &gt; nums[j + 1]: nums[j], nu...
原创
1123阅读
0评论
0点赞
发布博客于 3 年前

(四)pandas基本使用——query函数和修改列名

查询列price大于100的数据,返回对应的行名,然后可修改其值;条件'price&amp;gt;100'可以是'price&amp;lt;100 and price&amp;gt;20等。index=dfData.query('price&amp;gt;100').index
原创
13957阅读
0评论
3点赞
发布博客于 3 年前

(三)seaborn教程——可视化数据集的分布

一、绘制单变量分布import numpy as npimport pandas as pdimport seaborn as snsimport matplotlib.pyplot as pltfrom scipy import statssns.set(color_codes=True) #设置背景x = np.random.normal(si...
原创
3134阅读
0评论
0点赞
发布博客于 3 年前