解决IDEA中Tomcat9.X控制台输出乱码问题

  • IDEA版本为2019.3.2,Tomcat版本为9.0.31
  • 使用文本编辑器打开Tomcat安装目录下的conf/logging.properties文件,删除java.util.logging.ConsoleHandler.encoding = UTF-8行,保存退出。

算法4笔记/排序算法

排序类算法模板

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public static void sort(Comparable[] a) {
//排序内容
}

private static boolean less(Comparable v, Comparable w) {
//比较两数大小,若v小于w,则返回true
return v.compareTo(w) < 0;
}

private static void exch(Comparable[] a, int i, int j) {
//交换两元素位置
Comparable t = a[i];
a[i] = a[j];
a[j] = t;
}

private static void show(Comparable[] a) {
// 在单行中打印数组
for (int i = 0; i < a.length; i++)
StdOut.print(a[i] + " ");
StdOut.println();
}

public static boolean isSorted(Comparable[] a) {
//测试数组元素是否有序
for (int i = 1; i < a.length; i++) {
if (less(a[i], a[i - 1]))
return false;
}
return true;
}
Read More

图解机器学习/第一章 什么是机器学习

学习的种类

  • 监督学习

是指学生从老师那里获取知识、信息,老师提供对错指示、告知最终答案的学习过程。这一类机器学习的典型任务包括:预测数值型数据的回归、预测分类标签的分类、预测顺序的排序等。

  • 无监督学习

是指在没有老师的情况下,学生自学的过程。这一类机器学习的典型任务包括:聚类、异常检测等。

  • 强化学习

是指在没有老师提示的情况下,自己对预测的结果进行评估的方法。这一类机器学习的典型任务包括:回归、分类、聚类和降维等。

Read More

图解机器学习/第四章 带有约束条件的最小二乘法

单纯的最小二乘法对于包含噪声的学习过程经常有过拟合的弱点

部分空间约束的最小二乘学习法

 通过把参数空间限制在一定范围内,来防止过拟合现象。

$P$是满足$P^2=P$和$P^{\intercal}=P$的$b\times b$矩阵,表示的是矩阵$P$的值域$\mathcal{R}(P)$的正交投影矩阵。通过附加$P\theta=P$约束条件,参数$\theta$就不会偏移到值域$\mathcal{R}(P)$范围外了。

Read More

图解机器学习/第十章 概率分类法

对模式基于概率进行分类的手法称为概率分类法。基于概率的模式识别,是指对与模式$x$所对应的类别$y$的后验概率$p(y|x)$进行学习。其所属类别为后验概率达到最大值时所对应的类别。

类别的后验概率$p(y=\hat{y}|x)$,可以理解为模式$x$属于类别$y$的可信度。另外,基于概率的模式识别算法还有一个优势,就是对于多种类别的分类问题通常会有较好的分类结果。

Logistic回归

Logistic模型的最大似然估计

Logistic回归,使用线性对数函数对分类后验概率$p(y|x)$进行模型化

Logistic回归模型的学习,通过对数似然为最大时的最大似然估计进行求解。

一般使用对数使得乘法变成加法的方法来防止丢位现象的发生。

Read More

图解机器学习/第十一章 序列数据的分类

字符串的分类问题,比起将字符串拆分为独立的文字,并分别对各个文字进行识别,对字符串整体同时进行识别的话,因为能充分利用文字的前后关系,所以识别精度会更高。

序列数据的模型化

将顺序为$k$的模式定义为$x^{(k)}$,该模式所属的类别定义为$y^{(k)}$,然后将这样的$m$个模式的序列分别用$\overline{x}$和$\overline{y}$进行表示

如果对各个模式$x^{(k)}$进行独立的识别,那么$c$个类别的模式识别问题进行$m$次求解就可以完成对此模式序列的识别。然而,这样的识别方式并没有充分利用各个模式的前后关系。

在个模式的类别为$c$个的情况下,如果对连续的$m$个模式同时进行识别的话,就需要对$\overline{c} = c^m$个类别的模式识别问题进行求解。然而,在这种方式中,由于类别个数$\overline{c}$和参数$\overline{\theta}$的维度是以模式序列的长度$m$为基数呈指数级增长的,因此直接对其进行学习往往很困难。

假定只有前一个模式所属的类别$y^{(k-1)}$会对现在的模式$x^{(k)}$所属的类别$y^{(k)}$有影响,通过把连续的两个模式的识别加以组合,对模式序列全体进行识别。这样的方法,并不是简单地对连续的两种模式所对应的$c^2$个类别的识别问题进行单独求解,而是尽可能地对模式序列全体同时进行识别。这种方法称为条件随机场

这里的$\varphi(\overline{x},\overline{y})$表示的是基函数的向量。

Read More