6 控制结构
控制结构1 IF选择Scala IF…ELSE 语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。 if 语句。if 语句有布尔表达式及之后的语句块组成。 if…else 语句。if 语句后可以紧跟 else 语句,else 内的语句块可以在布尔表达式为 false 的时候执行。 if…else if…else 语句。if 语句后可以紧跟 else if…else 语句,在多个条件判断语句的情况下很有用。 if…{if…else…}…else… 嵌套语句。if…else 嵌套语句可以实现在 if 语句内嵌入一个或多个 if 语句。 2 循环循环类型Scala 语言提供了以下几种循环类型。点击链接查看每个类型的细节。 循环类型 描述while 循环 运行一系列语句,如果条件为true,会重复运行,直到条件变为false。do…while 循环 类似 while 语句区别在于判断循环条件之前,先执行一次循环的代码块。for 循环 用来重复执行一系列语句直到达成特定条件达成,一般通过在每次循环完成后增加计数器的值来实现。 while 循环Scala 语...
7 函数
方法函数1 方法与函数关系Scala 有方法与函数,二者在语义上的区别很小。Scala 方法是类的一部分,而函数是一个对象可以赋值给一个变量。换句话来说在类中定义的函数即是方法。 Scala 中的方法跟 Java 的类似,方法是组成类的一部分。 Scala 中的函数则是一个完整的对象,Scala 中的函数其实就是继承了 Trait 的类的对象。 Scala 中使用 val 语句可以定义函数,def 语句定义方法。 class Test{ def m(x: Int) = x + 3 val f = (x: Int) => x + 3} 2 函数类型变量混合式val f1 = (x:Int,y:Int)=>x*y 类型变量分离式val f2:(Int,Int)=>Int = (x,y)=>x*y 3 方法方法声明Scala 方法声明格式如下: def functionName ([参数列表]) : [return type]如果你不写等于号和方法主体,那么方法会被隐式声明为抽象...
8 闭包
Scala 闭包闭包是一个函数,返回值依赖于声明在函数外部的一个或多个变量。 闭包通常来讲可以简单的认为是可以访问一个函数里面局部变量的另外一个函数。 如下面这段匿名的函数: val multiplier = (i:Int) => i * 10函数体内有一个变量 i,它作为函数的一个参数。如下面的另一段代码: val multiplier = (i:Int) => i * factor在 multiplier 中有两个变量:i 和 factor。其中的一个 i 是函数的形式参数,在 multiplier 函数被调用时,i 被赋予一个新的值。然而,factor不是形式参数,而是自由变量,考虑下面代码: var factor = 3val multiplier = (i:Int) => i * factor这里我们引入一个自由变量 factor,这个变量定义在函数外面。 这样定义的函数变量 multiplier 成为一个”闭包”,因为它引用到函数外面定义的变量,定义这个函数的过程是将这个自由变量捕...
参考文献
菜鸟教程 scala详细教程 W3c教程 另外一个教程
9 字符串
字符串1 简介在 Scala 中,字符串的类型实际上是 Java String,它本身没有 String 类。 在 Scala 中,String 是一个不可变的对象,所以该对象不可被修改。这就意味着你如果修改字符串就会产生一个新的字符串对象。 但其他对象,如数组就是可变的对象。接下来我们会为大家介绍常用的 java.lang.String 方法。 2 常用方法创建字符串创建字符串实例如下: var greeting = “Hello World!”; 或 var greeting:String = “Hello World!”; 字符串长度我们可以使用 length() 方法来获取字符串长度: object Test { def main(args: Array[String]) { var palindrome = “www.runoob.com“; var len = palindrome.length(); println( “String Length is : “ + len ); }} 字符...
第23节 距离判别
距离判别 分类:数据集带标签聚类:无标签数据集 1 欧氏距离与马氏距离定义:距离判别 判别分析:根据样品的观察值判定归属。 距离判别原理:对距离进行规定,就近原则判定样品的归属。 定义:欧氏距离$$d(x,y)=\sqrt{\sum_{i=1}^n(x_i-y_i)^2}\=\sqrt{(x-y)’(x-y)}$$ 缺点:指标的量纲不同,意义不同。距离会因各个指标单位的变化而改变 定义:马氏距离 声明$$p元总体G的均值\mu和协方差矩阵\Sigma(\Sigma>0)\x,y是取自G的两个样本$$ 结论$$马氏距离d(x,y)=\sqrt{(x-y)’\Sigma^{-1}(x-y)}$$ 马氏距离与欧氏距离只相差一个协方差矩阵。具体原理的理解放到第二轮复习当中。 性质 非负性:$d(x,y)\geq 0,当且仅当x=y时,d(x,y)=0$ 自反性:$d(x,y)=d(y,x)$ 三角不等式:对任意的$x,y,z$,有$d(x,z)\leqd(x,y)+d(y,z)$ 特点 当$\Si...
第24节 Bayes判别
Bayes判别1 错判风险ECM最小准则定义:Bayes判别规则 条件$$m个正太总体G_1,\cdots,G_m;\密度函数f_1(x),\cdots,f_m(x)\m个个体各自发生的先验概率q_1,\cdots,q_m\错判损失C(j|i),错判矩阵C(R)\错判概率P(j|i,R)=\int_{R_j}f_i(x)d(x)\总平均错判损失:ECM(R)=\sum_{i=1}^mq_i\sum_{j=1}^mC(j|i)P(j|i,R)$$ 结论$$ECM(R^*)=min_R{EMC(R)}$$错判损失最小的划分方法称为bayes判别。 2 两个总体的bayes判别定理1:损失最小判别 声明$$总体G_1,G_2\密度函数f_1(x),f_2(x)\先验概率q_1,q_2\错判损失C(2|1)和C(1|2)$$ 结论 使得EMC(R)达到最小的判别区域$R^=(R_1^,R_2^)$$$R_1^={x:q_1C(2|1)f_1(x)\geq q_2C(1|2)f_2(x)}\R_2^*={x...
0 线性代数概述
线性代数线性代数究竟讲了个什么事情?线性方程组、向量、线性空间之间有什么关系?他们与矩阵有什么关系?为什么要在线性代数中讲到矩阵? 1 映射=函数=变换=算子 (在不同领域的不同称呼) 通常我们说 变换(transformation)时,实际上指的是函数(function)f ,也成为一个算子或者映射,给它一定的输入,它会产生相应的输出。 在线性代数的场景中,变换(transformation)可以想象为输入某个向量,然后输出另一个向量的过程。 2 线性方程、向量空间、线性空间关系是同一个东西的不同表述。 线性方程的系数表示的输入向量,多组$[x_1,\cdots,x_n]$表示多组算子。$[y_1,y_2,\cdots,y_n]$表示变换后的结果。(后续补充:感觉系数像是算子,未知量像解空间) 向量空间。由多个线性无关的向量组成的向量组,称为向量空间。每一个向量表示一个算子。 线性空间。有多个线性无关的基底组成的线性空间。每一个基底表示一个算子。 3 线性变换的表示一般来说,方阵能描述任意线性变换。线性变换,在一个线性空间中,将一个向量依次乘一...
1 矩阵行列式
行列式1 行列式与线性方程组线性方程程组$$\begin{cases} a_{11}x_1+a_{12}x_2=b_1\ a_{21}x_1+a_{22}x_2=b_2\end{cases}\$$ 行列式含义$$\begin{vmatrix} a_{11} & a_{12}\ a_{21} & a_{22}\end{vmatrix}= a_{11}a_{22}-a_{12}a_{21}\\begin{vmatrix} a_{11} & a_{12} & a_{13}\ a_{21} & a_{22} & a_{23}\ a_{31} & a_{32} & a_{33}\end{vmatrix}\= a_{11}a_{22}a_{33}+a_{12}a_{23}a_{31}+a_{13}a_{21}a_{32}\-a_{12}a_{21}a_{33}-a_{11}a_{23}a_{32}-a_{13}a_{21}a_{32}$$ 行列式表...
2 矩阵基本运算
矩阵及其运算1 矩阵概念定义:矩阵$$A=\begin{bmatrix} {a_{11}} & {a_{12}} & {\cdots} & {a_{1 n}} \ {a_{21}} & {a_{22}} & {\cdots} & {a_{2 n}} \ {\vdots} & {\vdots} & {\ddots} & {\vdots} \ {a_{m 1}} & {a_{m 2}} & {\cdots} & {a_{m n}}\end{bmatrix}$$ m行n列矩阵,$m \times n$矩阵,记作$A_{m\times n}$ 矩阵中的第i行第j列称为A的元素,记作$a_{ij}$ 矩阵分类 实矩阵、复矩阵:元素都是实数的矩阵称为实矩阵,元素是复数的矩阵称为复矩阵...













