怎么得出的|PF1|=2|MF1|=2b?

若系统检测到***用root用户登录了系统,如何将***所登录的终端杀死,并立即对root用户修改密码。
kill -9 PID按终端的进程号号杀掉异常的终端进程
简述CentOS6开机启动流程
引导加载器程序GRUB
先加载vmliuz内核,然后加载initramfs文件initd.img(里面都是预加载用到的的模块)
运行init,挂载硬盘和启动程序
运行init程序,init去读inittab启动模式,读取/etc/rc.d/rc.sysinit(里面有硬盘的挂载),找到相应模式对应的程序启动脚本,比如在5模式,去/etc/rc5.d里按顺序启动程序
 


修改上述网站的http 端口为9527 ,并为之增加SELinux 端口标签。
查看crond进程打开了哪些文件
 








 
 
http协议常用的状态码
200: 成功,请求数据通过响应报文的entity-body部分发送;OK
301: 请求的URL指向的资源已经被删除;但在响应报文中通过首部Location指明源现在所处的新位置;Moved Permanently
304: 客户端发出了条件式请求,但服务器上的资源未曾发生改变,则通过响应此状态码通知客户端;Not Modified
401: 需要输入账号和密码认证方能访问资源;Unauthorized
502: 代理服务器从后端服务器收到了一条伪响应,如无法连接到网关;Bad Gate
503: 服务不可用,临时服务器维护或过载,服务器无法处理请求
 
导航命令:% 括号匹配 插入命令: i 在当前位置生前插入、I 在当前行首插入、a 在当前位置后插入、A 在当前行尾插入、o 在当前行之后插入一行、O 在当前行之前插入一行
查找命令:/text  查找text,按n健查找下一个,按N健查找前一个。 ?text  查找text,反向查找,按n健查找下一个,按N健查找前一个。
替换命令:ra 将当前字符替换为a,当期字符即光标所在字符。
移动命令:^ 移动到本行第一个非空白字符上。 0(数字0)移动到本行第一个字符上, <HOME> 移动到本行第一个字符。同0键。 $ 移动到行尾 gg 移动到文件头。 = [[ G(shift + g) 移动到文件尾。 = ]]
跳到指定行,冒号+行号,回车,比如跳到240行就是 :240回车。另一个方法是行号+G,比如230G跳到230行。
x 删除当前字符 3x 删除当前光标开始向后三个字符
X 删除当前字符的前一个字符。X=dh
dl 删除当前字符, dl=x dh 删除前一个字符 dd 删除当前行 dj 删除上一行 dk 删除下一行 10d 删除当前行开始的10行。
D 删除当前字符至行尾。D=d$ d$ 删除当前字符之后的所有字符(本行)
删除全文:光标放置文首,:.,$d
拷贝粘贴:ddp交换当前行和其下一行 xp交换当前字符和其后一个字符
 
1.共享锁(shared lock,读锁):共享的,相互不阻塞的 2.排他锁(exclusive lock,写锁):排他的,一个写锁会阻塞其他的写锁和读锁 * 原子性(atomicity)一个事务必须被视为一个不可分割的最小工作单元,整个事务中所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作 * 一致性(consistency)数据库总是从一个一致性的状态转换到另外一个一致性的状态 * 隔离性(isolation)一个事务所做的修改在最终提交以前,对其他事务是不可见的 * 持久性(durability)一旦事务提交,则其所做的修改就会永久保存到数据库中 * READ UNCOMMITTED(未提交读),事务中的修改,即使没有提交,对其他事务也都是可见的,事务可以读取未提交的数据,也被称为脏读(Dirty Read),这个级别会导致很多问题 * READ COMMITTED(提交读),大多数数据库系统的默认隔离级别,一个事务开始时,只能“看见”已经提交的事务所做的修改,一个事务从开始直到提交之前,所做的任何修改对其他事务都是不可见的,也叫不可重复读(nonrepeatable read),有可能出现幻读(Phantom Read),指的是当某个事务在读取某个范围内的记录时,另外一个事务又在该范围内插入了新的记录,当之前的事务再次读取该范围的记录时,会产生幻行(Phantom Row) * SERIALIZABLE(可串行化)最高级别,通过强制事务串行执行,避免了幻读问题,会在读取的每一行数据上都加锁,可能导致大量的超时和锁争用的问题 3.死锁:指两个或多个事务在同一资源上相互占用,并请求锁定对方占用的资源,从而导致恶性循环的现象 4.事务日志:存储引擎在修改表的数据时只需要修改其内存拷贝,再把该修改行为记录到持久在硬盘上的事务日志中,而不用每次都将修改的数据本身持久到磁盘。事务日志持久以后,内存中被修改的数据在后台可以慢慢地刷回到磁盘,称为预写式日志(Write-Ahead Logging) 1.索引可以包含一个或多个列的值,如果索引包含多个列,那么列的顺序也十分重要,因为MySQL只能高效地使用索引的最左前缀列 2.ORM工具能够产生符合逻辑的、合法的查询,除非只是生成非常基本的查询,否则它很难生成适合索引的查询 3.在MySQL中,索引是在存储引擎层而不是服务器层实现的,所以,并没有统一的索引标准:不同存储引擎的索引的工作方式并不一样,也不是所有的存储引擎都支持所有类型的索引 4.B-Tree意味着所有的值都是按顺序存储的,并且每一个叶子页到根的距离相同,能够加快访问数据的速度,从索引的根节点开始进行搜索,适用于全键值、键值范围或键前缀查找 1.三个优点: * 索引大大减少了服务器需要扫描的数据量 * 索引可以帮助服务器避免排序和临时表 * 索引可以将随机I/O变为顺序I/O * 客户端发送一条查询给服务器 * 服务器先检查查询缓存,如果命中则立刻返回,否则进入下一阶段 * 服务器端进行SQL解析、预处理,再由优化器生成对应的执行计划 * MySQL根据优化器生成的执行计划,调用存储引擎的API来执行查询 * 将结果返回给客户端 1.视图本身是一个虚拟表,不存放任何数据,返回的数据是MySQL从其他表中生成的 2.MySQL使用两种算法:合并算法(MERGE)和临时表算法(TEMPTABLE),会尽可能地使用合并算法 3.如果视图中包含GROUP BY、DISTINCT、任何聚合函数、UNION、子查询等,只要无法在原表记录和视图记录中建立一一映射的场景中,MySQL都将使用临时表算法来实现视图 4.可更新视图(updatable view)是指可以通过更新这个视图来更新视图涉及的相关表,CHECK OPTION表示任何通过视图更新的行,都必须符合视图本身的WHERE条件定义 5.在重构schema的时候可以使用视图,使得在修改视图底层表结构的时候,应用代码还可能继续不报错运行 6.MySQL中不支持物化视图(指将视图结果数据存放在一个可以查看的表中,并定期从原始表中刷新数据到这个表中) 7.不会保存视图定义的原始SQL语句
}

1. 经验误差与过拟合

过拟合overfitting):将训练样本的自身特性当做了一般性质,在训练集表现很好,在测试集表现糟糕。
解决方法:过拟合是机器学习关键障碍,无法彻底避免,只能“缓解”。
欠拟合underfitting):未能学得训练样本的一般性质,在训练集和测试集都表现不好。
解决方法:在决策树学习中扩展分支、在神经网络学习中增加训练轮数等。

模型选择model selection)问题:现实任务中有多种学习算法可供选择,且同一个学习算法可有不同的参数配置,就出现了选择哪一个学习算法、使用哪一种参数配置问题。
然而,泛化误差无法直接获得,训练误差又存在过拟合问题,所以需考虑使用其他方法进行模型评估。

以测试误差作为泛化误差的近似,前提是测试集应尽可能与训练集互斥,即测试样本尽量不在训练集中出现。
从数据集 D 中产生训练集 S 和测试集 T 的常见方法有:留出法、交叉验证法、自助法、参数调节

S/T 的划分应尽可能保持数据分布的一致性。如:分类任务中可使用分层采样stratified sampling)保持样本类别的比例相似。
即使在给定 S/T 的样本比例,仍会因不同划分方法产生不同的 S/T,相应的模型评估结果也有差别。所以单次使用留出法不够稳定可靠,一般采用多次随机划分、重复实验评估后取平均值作为最终的评估结果
若 S 包含绝大多数样本,则训练出的模型更接近用 D 训练出的模型,但由于 T 较小,评估结果可能不够稳定精确;若 T 包含更多样本,则 S 与 D 的差别更大,被评估的模型与用 D 训练出的模型差别较大,降低了评估结果的真实性(fidelity)。常见做法是将大约 2/3 ~ 4/5 的样本用于训练, 剩余样本用于测试,且测试集至少包含 30 个样本。

Di 都通过分层采样尽可能保持数据分布的一致性。然后,每次使用 k-1 个子集的并集作为训练集,余下子集作为测试集,如此可得到 k 组 训练/测试集,进行 k 次训练和测试,最终返回这 k 个测试结果的均值。

交叉验证法评估结果的稳定性和保真性很大程度上取决于 k 的取值,所以交叉验证法又称为k 折交叉验证k-fold cross validation)。常用的有 10 折交叉验证、5 折交叉验证、20 折交叉验证等。

将 D 划分成 k 个子集存在多种划分方式,为减小因样本划分不同引入的差别,k 折交叉验证通常要随机使用不同的划分重复 p 次,取这 p 次 k 折线交叉验证结果的均值作为最终的评估结果。常见的有 10 次 10 折交叉验证。

留一法不受随机样本划分方式的影响。留一法中被评估模型与期望评估的用 D 训练得出的模型很相似,因此评估结果往往比较准确。然而,训练集较大时, 计算开销将难以忍受,还是在未考虑算法调参的情况下。另外,留一法的评估结果未必永远比其他评估方法准确,NFL 定理在这里同样适用。

在留出法和交叉验证法中,由于保留了一部分样本用于测试,因此必然会引入因训练样本与 D 规模不同而导致估计偏差。而留一法虽受训练样本规模变化的影响较小,但计算复杂度太高。

给定包含 m 个样本的数据集 D,对它进行采样产生数据集 D':每次随机从 D 中挑选一个样本,将其拷贝到 D' 中,然后再该样本放回 D 中,使该样本在下次采样时仍可能被采到。重复执行该过程 m 次,得到包含 m 个样本的数据集 D',这就是自助采样的结果。

36.8% 的样本没有出现在采样数据集 D' 中。这样,实际评估模型与期望评估的模型都使用 m 个训练样本,而仍有约 1/3 的、没有在训练集中出现的样本用与测试。该测试结果亦称为包外估计out-of-bag estimate)。

自助法产生的数据集改变了初始数据集的分布,会引入估计偏差,适用于数据集小、难以有效划分训练/测试集的情况。在初始数据量足够的情况下,留出法和交叉验证法更常用。

参数调节调参parameter tuning):大多数学习算法都有参数需要设定,参数配置不同,学得的模型也可能有显著差别,所以不仅需要选择适用的学习算法,还需要对算法参数进行设定。

由于参数实在实数范围取值,无法对所有参数配置都训练出模型进行挑选,所以常对参数限定一个范围步长,然后从这些候选值中选择“最佳”的哪个。显然,这样选定的参数往往不是最佳值,但这是在计算开销和性能评估之间折中的结果。即使这样,在不少学习算法中仍然有大量的参数需要设定,参数调得不好,往往对最终模型性能有关键性影响。

给定包含 m 个样本的数据集 D,对模型进行测试评估选定后,学习算法和参数配置也选定了,此时应该用数据集 D 重新训练模型,在这次训练中使用了所有 m 个样本,才是最终的模型。
在评估不同算法的泛化能力时候,我们使用测试集上的效果来估计模型在实际使用时的泛化能力,为了加以区分,我们将训练数据分为训练集验证集validation set),使用验证集来进行模型选择和调参。

性能度量performance measure):衡量模型泛化能力的评价标准。
性能度量反应了任务需求,不同的性能度量会产生不同的评判结果。模型的"好坏"不仅取决于算法和数据,还取决于任务需求。

分类任务常用的性能度量有:错误率和精度,查准率、查全率与 F1,ROC 与 AUC,代价敏感错误率与代价曲线

对样例集 \(D\)分类错误率定义为:

分类任务的精度定义为:

更一般的,对数据分布 \(\mathcal{D}\) 和概率密度函数 \(p(\cdot)\),分类任务的错误率和精度可分别描述为:

3.2 查准率、查全率与 F1

对于二分类问题,将样例根据真实类别与学习器预测类别的组合划分为:真正例true positive)TP、假正例 false positive)FP、真反例true

查准率:预测出的正例中预测正确的比例。
查全率:所有真实的正例中,有多少比例被正确预测出来。

一般来说,查准率和查全率是一对矛盾的变量。如果希望查准率高,那么只选中最可能是正例的样例,这样查全率就会偏低。而如果希望查全率高,那么选中更多的样本为正例,则查准率又会偏低。

我们将学习器的预测结果对样本进行排序,越可能是正例的排得越靠前,然后从前往后依次作为分界,前面的视为正例,后面的视为反例,然后作出不同分界下的查准率-查全率曲线,简称P-R曲线。如下面的示意图,是不同学习器 A、B、C 的 P-R 曲线:

示意图为了绘图方便和美观,为单调平滑曲线,但实际任务中多为非单调、不平滑,且局部有上下波动。

通过 PR 曲线比较不同学习器的性能:

  • 一个学习器的 PR 曲线被另一个学习器的 PR 曲线完全包住,则可断言后者的性能优于前者(如学习器 A 性能优于学习器 C)。

  • 若两个学习器的 PR曲线有交叉,则不能笼统地断言孰优孰劣,只能在具体的条件下比较。或通过比较 PR 曲线下面积的大小,面积越大,可认为该学习器在取得查准率和查全率双高的比例更高。

  • 比较平衡点平衡点Break-Event Point,简称 BEP)是在 \(P = R\) 时的取值。BEP 的值越高,可认为学习器的性能更好。

  • 使用 F1 度量。F1 度量是基于查准率和查全率的调和平均(harmonic mean)定义的:

  • 使用 Fβ 度量。 Fβ 是 F1 的一般形式,为 P 和 R 的加权调和平均:

有时我们希望在多个二分混淆矩阵上综合考察查准率和查全率,例如进行多次训练/测试、在多个数据集上进行训练/测试、在多分类任务中两两类别组合分类……这时可以使用宏查准率macro-P)、宏查全率macro-R)、宏F1macro-F1)、微查准率micro-P)、微查全率micro-P)、微F1micro-F1)。

ROCReceiver Operating Characteristic,全称受试者工作特性):将测试样本进行排序,越可能是正例的排在越前面,取不同的预测值作为截断点将样本分为两部分,前面为正例,后面为反例,做出ROC曲线

ROC 曲线示意图如下:

显然 (0,1) 点为所有真实正例排在真实反例前的理想模型。

使用 ROC 曲线比较不同学习器的性能:

  • 若一个学习器的 ROC 曲线完全包住另一个学习器的 ROC 曲线,则前者的性能优于后者。

  • AUC 考虑的是样本预测的排序质量,所以它与排序误差关。我们考虑每一对正、反例,若正例的预测值小于反例,则记 1 个罚分,若相等,记 0.5 个罚分,得到排序损失loss),即 ROC 曲线之上的面积

3.4 代价敏感错误率与代价曲线

现实任务中,不同类型的错误造成的后果可能不同。为权衡不同类型的错误所造成的不同损失,可以使用非均等代价unequal cost)。

以二分类任务为例,为其设定一个代价矩阵cost matrix):

一般情况下,更关注 \(cost\) 的比值,而非绝对值大小。

若将上表中第 0 类作为正类、第 1 类作为反类,令 \(D^+\)\(D^-\) 分别代表样例集 \(D\) 的正例子集和反例子集,则代价敏感cost-sensitive错误率为:

由于在非均等代价在,ROC 曲线不能直接反映学习器的期望总体代价,这时就需要使用代价曲线cost curve)。
代价曲线的横轴正例概率代价纵轴归一化代价,其定义如下:

代价曲线的绘制(示意图如下):
ROC 曲线上的每一点都对应代价平面上的一条线段。
线段下的面积代表了当前条件下的期望总体代价,当将 ROC 曲线上的每一个点转换为代价平面上的线段后,所有线段的下界围成的面积即为该学习器的期望总体代价

比较学习器的性能不能直接比较某个性能度量的值,因为:

  • 通过实验评估方法获得的指数测试集上的性能,并不是真正的泛化性能
  • 测试集上的性能与测试集本身的选择有很大的关系,测试集的大小的不同、测试集样例的不同都可能得到不同的结果
  • 很多学习算法本身有一定的随机性,即使相同的参数在同一个测试集进行多次测试,结果也可能不同。

假设检测hypothesis test)可以推断学习器 A 的泛化性能在统计意义上是否优于学习器 B。

下面以错误率为性能度量为例,记错误率为 \(\epsilon\)

现实任务中我们无法得到学习器的泛化错误率,只能获知测试错误率 \(\hat{\epsilon}\) ,但是测试错误率不会相差太离谱,所以可以根据测试错误率估推出泛化错误率的分布。

m\) 个样本分类错误的概率,即该泛化错误率为 \(\epsilon\) 的学习器在被测试得到的错误率为 \(\hat{\epsilon}\) 的概率为:

s.t 为 subject to 的缩写,即左式在右式条件满足时成立。

否则可拒绝该假设,即在该显著度下可认为泛化错误率与 \(\epsilon_{0}\) 有显著不同。
\(\alpha\) 常用取值和常用临界值如下:

上面两种方法是关于单个学习器泛化性能的假设进行检验。对不同的学习器性能的比较可使用下面介绍的假设检验方法。

小于临界值 \(t_{\alpha/2,k-1}\) 则假设不能被拒绝,两学习器性能没有显著差别;否则有明显差别,且平均错误率小的性能更优

要进行有效的假设检验,需要测试错误率均为泛化错误率的独立采样。但是,在样本有限的情况下,使用交叉验证等方法时,训练集难免有一定程度的重复,造成过高估计假设成立的概率。这时可使用 5×2 交叉验证法

对二分类问题,使用留出法获得两学习器 A、B 的分类结果的差别,即都正确、都错误、一个正确一个错误的样本数,得到列联表contingency table):

交叉 t 检验和 McNemar 检验只适用与同一数据集上两个学习器性能的比较,若在一组数据集上比较多个算法,可以在每个数据集上使用之前的方法进行两两比较,而更直接的方法是,使用基于算法排序的 Friedman 检验

首先得到每个算法下每个数据集上的测试结果,然后在每个数据集上按测试性能由好到坏排序,序值赋 \(1,2,...\),若性能相同,序值平分,最后对每个算法的序值求平均,得到算法的平均序值,示意表如下:

使用 Friedman 检验,若性能相同,则平均序值应相等。
假定在 \(N\) 个数据集上比较 \(k\) 个算大,\(r_i\) 表示第 \(i\) 个算法的平均序值(为简化,不考虑平分序值情况),则 \(r_i\) 服从均值为 \((k+1)/2\)、方差为

上述的 “原始 Friedman 检验”过于保守,现通常使用变量

若“所有算法的性能相同”的假设被拒绝,则需进行后续检验(post-hoc test)区分各算法,常用的有 Nemenyi 后续检验。

Nemenyi 检验计算出平均序值差别的临界值域

若两平均序值只差超出临界值 \(CD\),则说明两算法性能显著不同。

以各算法的平均序值为横轴,各算法为纵轴,用圆点表示平均序值,然后以圆点为中心做横线段代表临界值域的大小,得到 Friedman 检验图,示意图如下:

若两算法的横线段有交叠,则两算法无显著区别;否则有显著区别,且平均序值越小,性能越优。

对学习算法可通过实验估计其泛化性能,偏差-方差分解bias-variance decomposition)可解释学习算法为什么具有这样的性能。

以回归任务为例,学习算法的期望预测为:

使用样本数相同的不同训练集产生的方差为:

偏差,即期望输出与真实标记的差别为:

即泛化误差可分解为偏差、方差和噪声之和:

  • 偏差度量了学习算法的期望预测与真实结果的偏离程度,即该学习算法的拟合能力;
  • 方差度量了相同大小的训练集的变动所导致的性能的变化,即数据扰动对性能的影响;
  • 噪声表达了当前任务上学习算法的期望泛化误差的下界,即学习问题本身的难度。

偏差-方差分解说明了,泛化性能是有学习算法的能力、数据的充分性及学习任务本身的难度共同决定的。

偏差-方差窘境bias-variance dilemma):一般偏差和方差是有冲突的,在训练程度不断加深的过程中,先由偏差主导了泛化错误率,而后方差主导泛化错误率,示意图如下:

这是由于在训练程度不足时,学习器拟合能力不强,扰动带来的影响不足以带来显著影响;
当学习器拟合能力增强,数据的扰动渐渐能被学习器学到,轻微的扰动也能带来显著变化。

}

我要回帖

更多关于 双曲线PF1垂直PF2吗 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信