台大李宏毅Machine Learning 2017Fall学习笔记 (5)Classification: Probabilistic Generative Model

[机器学习入门] 李宏毅机器学习笔记-6 (Classification: Logistic Regression;逻辑回归) [机器学习] 李宏毅机器学习笔记-6 (Classification: Logistic Regression;Logistic回归) PDF VIDEOThree stepsStep 1: Function SetStep 2: Goodness of a FunctionStep 3: Find the best functionLogistic Regression VS Linear 阅读详情

台大李宏毅Machine Learning 2017Fall学习笔记(5)Classification: Probabilistic Generative Model

本节课以二分类问题为例,详细讲解了模型建立的过程及其背后的数学原理。
分类问题的理想模型如下图所示。定义损失函数,给定一个输入值,模型便能输出类别。

如果是简单的二分类问题(比如下图中通过球的颜色判断属于哪个盒子),根据贝叶斯公式可以构造出一个分类器。贝叶斯公式如下:

P(Aj|B)=P(AjB)P(B)=P(Aj)P(B|Aj)∑ni=0P(Ai)P(B|Ai)

对于二分类问题,公式简化为下图所示。
这里写图片描述
正如上图中所示,Pokemon分两类:Class1的标签是Water,Class2的标签是Normal。训练集中有79只Water Pokemon和61只Normal Pokemon。
根据公式需要得到先验概率和某类Pokemon的分布概率密度函数。其先验概率为:
P(C1)=7979+61=0.56
P(C2)=6179+61=0.44

再求某类Pokemon的分布概率密度函数。用一个列向量表示表示一只Pokemon的特征参数。
先利用Pokemon的两个属性值Defense和SP Defense。假定每一只Pokemon的两个属性值均采样自高斯分布。
这里写图片描述
因为输入参数是2*1的列向量,故采样点符合二元高斯分布的概率密度函数。具体公式如下图所示。
这里写图片描述
利用最大似然估计求出概率密度函数的参数μ∗和∑∗。步骤见下图。
这里写图片描述
求出两个概率密度函数的均值向量和协方差矩阵
这里写图片描述
把两组均值向量和协方差矩阵回带至模型中,分类器就建立起来了!
这里写图片描述
现在建立的模型正确率并不高,调整模型。
可以把两类Pokemon分布概率密度函数中的协方差矩阵统一。
这里写图片描述
调整最大似然函数,对μ1,μ2和∑进行最大似然估计。把计算得到的参数回带至模型中,模型的准确率有了一定的改进。
这里写图片描述
如果能增加Pokemon的特征维度,那么准确率会还可以提高。
总结一下:模型的建立分为3步:
这里写图片描述
下面是一些数学概念的理解和推导过程,容易理解,不再赘述。
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
[机器学习入门] 李宏毅机器学习笔记-5(Classification- Probabilistic Generative Model;分类:概率生成模型) [机器学习] 李宏毅机器学习笔记-5(Classification: Probabilistic Generative Model;分类:概率生成模型)ClassificationHow to do ClassificationIdeal Alternatives Gaussian Distribution Probability from Class 那么怎样找到这个Gaussion f 阅读详情

相关推荐

[机器学习入门] 李宏毅机器学习笔记-18 (Deep Generative Model-part 1:深度生成模型-part 1)

[机器学习入门] 李宏毅机器学习笔记-18 (Deep Generative Model-part 1:深度生成模型-part 1) PDF VIDEOCreation 据说在费曼死后,人们在他生前的黑板上拍到如图画片,在左上角有道:What i cannot create ,I do not understand. Generative models,就是在做创造的事情。 Imag

Holeung blog 6083

李宏毅机器学习笔记1——classification(分类)

分类,即在一个函数判断输入数据所属类别,包括二分类(是/否)和多分类(类别1/类别2……)。·应用范围:信用评分、医疗诊断、手写字符识别、人脸识别等高斯函数通过计算均值μ和协方差Σ(均为矩阵),输入向量x,得到x的概率密度。下图中可以发现,同样的协方差,不同的矩阵,概率分布最高点的地方不同。如果是不同的协方差,同样的均值,此时概率点分布最高的位置一样,但分布密集程度不同。接下来,通过估计均值和协方差来找出高斯函数,估测的方法是极大似然估计法。

m0_63776870的博客 893

[机器学习入门] 李宏毅机器学习笔记-13 (Semi-supervised Learning ;半监督学习)

[机器学习入门] 李宏毅机器学习笔记-13 (Semi-supervised Learning ;半监督学习) PDF VIDEOIntroductionWhy semi-supervised learning helps?Semi-supervised Learning for Generative ModelSupervised Generative Model VS Semi-super

Holeung blog 8050

李宏毅机器学习 Classification

  Classification:Probabilistic Generative Model,本节课讲的是基于概率生成模型的分类。   分类任务本质上是找到一个函数,函数的输入是输入数据,输出是类别。应用范围比较广,例如信用卡评分、医学诊断、手写数字识别、人脸识别等等。   下图是对不同的宠物小精灵划分类别,如火系、冰系、草系等等。 下图是给定了一些宠物小精灵的特征,然后去预测它的类别。 ...

herosunly的博客 6599

Flink项目基础配置指南

在大数据处理领域,Apache Flink凭借强大的实时流处理和批处理能力,成为众多开发者的首选工具。在日常工作中,开发Flink Jar任务是常见需求,但每次都需重复配置日志、梳理pom依赖、设置打包插件等,流程繁琐且易出错。为提升开发效率,减少重复劳动,将这些基础配置进行整理归纳十分必要。本文将围绕Flink项目的本地日志配置、pom依赖及插件配置展开详细介绍,为开发者提供一套可直接复用的基础配置方案,助力Flink项目高效开发。在Flink项目中,日志是了解任务运行状态、排查问题的重要依据。本地日志配

qq_42773076的博客 1210

【Unity】制作简易三维场景

本文介绍如何制作一个三维场景

CiNian_的博客 5332

机器学习(李宏毅)—— Classification

如果简单的将Classification看成一个Regression的问题,会发现Regression的评价标准并不适用于Classification(回归的本质是让损失函数尽可能的小,而分类只看重类别并不关心损失函数的大小)。 Gaussian Distribution:,均值,协方差矩阵。 Maximum Likelihood:假设从被给的高斯分布所生成的79个数据,根据极大似然估计原理,从而,化简得, ...

mooc1212的博客 1673

5分钟快速验证lvgl界面:VScode模拟器极简配置法(免环境变量版)

本文介绍了一种5分钟快速验证LVGL界面的极简配置方法,使用VSCode模拟器免环境变量配置,适合UI设计师和产品经理快速预览界面效果。通过预编译的SDL2库和配置好的VSCode工程模板,实现开箱即用的LVGL界面验证,大幅提升工作效率。

weixin_30790841的博客 314

李宏毅机器学习课程笔记2:Classification、Logistic Regression、Brief Introduction of Deep Learning

台湾大学李宏毅老师的机器学习课程是一份非常好的ML/DL入门资料,李宏毅老师将课程录像上传到了YouTube,地址:NTUEE ML 2016 。 这篇文章是学习本课程第4-6课所做的笔记和自己的理解。Lecture 4: Classification: Probabilistic Generative Model以根据宝可梦各属性值预测其类型为例说明分类问题。 训练数据是若干宝可梦的各属性值及

徐子尧的博客 1万+

WPF实战:利用Live Charts实现高性能动态曲线可视化

本文详细介绍了如何在WPF中使用Live Charts实现高性能动态曲线可视化,特别适用于工业监控和金融分析等实时数据场景。通过增量渲染、内存复用和硬件加速等核心技术,Live Charts能够高效处理高频数据更新,显著提升图表流畅度。文章提供了从基础实现到工业级优化的完整解决方案,帮助开发者应对各种性能挑战。

weixin_29189373的博客 406

Diffix3D+复现

上下载模型,将其放在一个目录中,并将目录名填在demo代码中from_pretrained的cache_dir参数里。目录结构应该是"<PATH>/nvidia/difix/…给的requirements文件中pytorch和xformers的版本没有指定,这里测试过以下版本,可以成功运行。将readme中的demo代码新建一个python脚本复制进去,然后将脚本放在src目录中运行。如果遇到网络问题无法加载huggingface上的预训练模型,可以手动从。如果出现,以下错误重新。

NeverMakeIt的博客 1085

机器学习(台湾李宏毅版)学习笔记 Classification AND Logistic Regression

     Logistic Regression 与 Linear Regression 最大的区别就是它预测的真实值是离散的,Logistic Regression 是用来进行分类的预测的(将不同的类别标记不同的数字)。Linear Regression 的步骤是:1、构造模型(如 )2、使用training data梯度下降(参考  机器学习(台湾李宏毅版)学习笔记 gradient desc...

慵懒的黄桃 611

【鸿蒙南向开发】OpenHarmony——分布式数据对象之功能实践

通过本文的学习可了解到分布式数据对象的主要接口、大致调用方法和功能实现等。结合对应内容,可以进一步对分布式数据对象同步机制做深度学习。下一步,(1) 着重理解同步组网的构建原理。(2) 着重理解同步组网内,监听change和status变化的实现。●如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:●关注小编,同时可以期待后续文章ing🚀,不定期分享原创知识。

HarmonyOS_666的博客 1089

2020李宏毅机器学习笔记——4.classification(分类)

一、classification分类 分类(classification),即找一个函数判断输入数据所属的类别,可以是二类别问题(是/不是),也可以是多类别问题(在多个类别中判断输入数据具体属于哪一个类别)。 同回归问题(regression)相比,分类问题的输出不再是连续值,而是离散值,用来指定其属于哪个类别。分类问题在现实中应用非常广泛,比如垃圾邮件识别,手写数字识别。 ...

weixin_44790306的博客 3517

高数15种常见特殊曲线:星形线、心形线、摆线、对数螺线、双曲螺线、阿基米德螺线、伯努利双纽线、三叶玫瑰线、四叶玫瑰线、六叶玫瑰线、三次抛物线、半立方抛物线、箕舌线、蔓叶线、笛卡儿叶形线、概率曲线

4.1 对数螺线(等角螺线、生长螺线)三叶玫瑰线、四叶玫瑰线、六叶玫瑰线。​7.2 半立方抛物线(尼尔曲线)10.笛卡儿叶形线(茉莉花瓣曲线)常考选择题、填空题,大题也涉及。​4.2 双曲螺线(倒数螺线)11.阿基米德螺线(等速螺线)3.摆线(圆滚线、旋轮线)5.双纽线(伯努利双纽线)1.星形线(四尖瓣线)2.心形线(心脏线)..................

刘鑫磊 1万+

GTK4 入门到实战

本文介绍GTK4作为主流Linux GUI工具包的发展历程与核心特性,涵盖其从GIMP项目诞生的自由软件理念、版本演进及跨平台支持。重点解析GTK4的架构(GDK/GSK/GLib等)、GObject对象系统、信号-回调机制与事件驱动模型,并以C语言为例,结合开发环境搭建与官方示例(gtk4-demo)指导实践,最终通过图片查看器与多标签编辑器项目实现完整应用开发。

OneSea 1390

一文了解采样方法

作者 | DarkScope,蚂蚁金服高级算法工程师,致力于算法技术的创新和实际应用,乐于通过博客的方式对技术进行分享和探讨。▌引子最近开始拾起来看一些 NLP 相关的东...

AI科技大本营 2935

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

李宏毅机器学习课程5~~~分类:逻辑回归

Function Set不同的w,b来确定不同的函数,这样就组成了函数集合,不同的w,b可以来表达不同的分布函数。Good of a Function 变换表达形式两个Bernoulli distribution的交叉熵。所谓交叉熵,是用来刻画两个分布的相似性。在这里,交叉熵可以理解为真实分布与预测分布的相似度。同分布的话,交叉熵是0Finding the best Function上式表明预测

jiandanjinxin的专栏 2031

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

2018-3-19李宏毅机器学习视频学习笔记九----Classification: Probabilistic Generative Model

视频来源:李宏毅机器学习(2017)_哔哩哔哩 (゜-゜)つロ 干杯~-bilibilihttps://www.bilibili.com/video/av10590361/?p=10步骤:(1)数字化,将各个事物转化为数字的形式。(2)数字作为输入(3)模型建立(4)输入,训练宝可梦的实例分析(1)宝可梦的属性可以分为十八种如图:输入宝可梦数字化的特征属性,得到其所属的种类为什么要预测各个宝可梦的...

luolang_103的博客 471

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

李宏毅机器学习——学习笔记(5)classification

Classfication and regression 分类和回归问题的loss function不一致,所以如果用回归的方式来解决分类问题,可能会惩罚“比较正确的那些项”,将这些项判定为error。 maximum likelihood 最大似然的方法,就是找出一种分布的参数,使得从这个函数中挑选出这些样本的可能性最大,然后再根据得到的分布函数用于分类 经过一系列的复杂运算,假...

m0_37757740的博客 418

机器学习(李宏毅)第四天:Classification分类概率生成模型

机器学习(李宏毅2016)第四天:Classification分类概率生成模型

mangoJohn的博客 375

李宏毅机器学习课程笔记4:CNN、Why Deep、Semi-supervised

台湾大学李宏毅老师的机器学习课程是一份非常好的ML/DL入门资料,李宏毅老师将课程录像上传到了YouTube,地址:NTUEE ML 2016 。 这篇文章是学习本课程第10-12课所做的笔记和自己的理解。Lecture 10: Convolutional Neural Network Why CNN for ImageCNN的参数比全连接神经网络少得多,为什么CNN只用较少的参数就可以用于处理图

徐子尧的博客 9137

suffix tree,python 版

 代码如下:## A Suffix-tree implementation#NODE_COUNT = 1class EdgeSet:        Save edge, edge is identified by start node and first char        def __init__(self):        self.dict = {}    def add

tianqio的专栏 2347

台大李宏毅Machine Learning 2017Fall学习笔记 (9)Keras

台大李宏毅Machine Learning 2017Fall学习笔记 (9)Keras 本节课主要讲述了如何利用Keras搭建深度学习模型。Keras是基于TensorFlow封装的上层API,看上去要好用不少啊~~~ 用Keras搭建深度学习法模型类似搭积木,直接贴PPT了。 Step 1: Define a set of function 上图中model=Sequential

Allenlzcoder的博客 658

作业2 台大李宏毅——Classification (分类)--1

台大李宏毅课程作业2内容提要助教例程自己的程序数据获取data_settrainmain 首先分享找到的关于作业2的说明PDF和主教给的例程。 链接:https://pan.baidu.com/s/1VoWKz2cOTrVFnQkSQjIrKA 提取码:njz3 其中.ipynb文件用Jupyter Notebook打开,阅读比较方便。 下面的链接是作业中用到的数据集: 链接:https://pan.baidu.com/s/1HpXeECc1ay_a2FP76SaX4w 提取码:mneu 最后放上助教对本

专业技能学习笔记本 598

后缀树(Suffix tree)

概述 后缀树,就是把一串字符的所有后缀保存并且压缩的字典树。相对于字典树来说,后缀树并不是针对大量字符串的,而是针对一个或几个字符串来解决问题。比如字符串的回文子串,两个字符串的最长公共子串等等。 性质:一个字符串构造了一棵树,树中保存了该字符串所有的后缀。 操作:就是建立和应用。 (1)建立后缀树 比如单词banana,它的所有后缀显示到下面的。0代表从第一个字符为起点,终点不用说都是字符串的...

Allenlzcoder的博客 1685
上一篇: 预处理: 主成分分析和白化
下一篇: 多元高斯函数
Allenlzcoder
博客等级 码龄10年 925粉丝 512原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值