自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 收藏
  • 关注

原创 Scala 系列 - 模式匹配 Pattern Matching

本文主要介绍 Scala 中的模式匹配普通的模式匹配val a = 1val b = a match { case 1 => 'a' case 2 => 'b' case _ => 'c'}match 是表达式,不是语句,所以可以将 match 语句的值赋值给其他变量带守卫的模式匹配val a = 100val b = a match { case 1 => 'a' case 2 => 'b' case _ if a%10==0 =.

2020-05-31 14:18:58 345

原创 Scala 系列 - List

本文主要介绍 Scala 中的 ListList 是不可变的实现的方式是递归的方式,比如,List(1, 2, 3)可以看成是1和List(2,3)组成的,List(2, 3)可以看成是2和List(3)组成的,以此类推所以,所有 List 是以一个 empty list NIL 和 构建操作 :: 为基础构建的所以,List(1, 2, 3)可以看成是1::(2::(3::Nil)),根据操作符优先级,::是右结合的,所以等价于1::2::3::Nil,等价于Nil.::(3).::(2)..

2020-05-31 14:16:53 373

原创 Scala 系列 - apply/unapply/update/unapplySeq方法

apply 方法用括号传递给类实例或单例对象名一个或多个参数时,Scala会在相应的类或对象中查找方法名为apply且参数列表与传入参数一致的方法,然后执行class Car(name:String){ def info(){ println("Car name is" + name) }}object Car{ // 工厂方法 def apply(name:String) = new Car(name)}// 再创建类实例的时候就不用 new Car("xxx")了 直.

2020-05-31 11:03:17 432

原创 Scala 系列 - 包和引入

本文主要对 Scala 中的包和引入进行介绍包的引入// 导入Mapimport scala.collection.mutable.Map// 导入Map和Arraybufferimport scala.collection.mutable.{Map, Arraybuffer}// 重命名Mapimport scala.collection.mutable.{Map => Mymap}// 导入包下全部成员import scala.collection.mutable._.

2020-05-25 10:31:45 484

原创 AutoML 系列 - Hyperband介绍

本文主要根据《Hyperband: A Novel Bandit-Based Approach to Hyperparameter Optimization》论文,对Hyperband进行介绍背景随着数据量的增大以及模型复杂度的增加,使用类似贝叶斯优化等方法进行超参数优化会消耗大量的计算资源,所以有必要寻求一种更加快速的算法。该文章的作者将寻找最优超参数的过程视为一个在给定资源( 迭代次数,数据量,特征量等 )下,在无限臂老虎机上进行非随机地探索的过程。在这种想法下提出了 Hyperband .

2020-05-24 22:48:00 5784

原创 Scala 系列 - 标识符与操作符

本章主要操作符的相关概念以及实现自己的操作符的方法标识符变量,函数和类等的名称统称为标识符。在 Python 中,标识符都是字母和数字字符的序列,以字母或者下划线开头。Scala 可以使用 Unicode 字符,例如如下定义都是合法的val ** = 1val ∮ = 2再例如我们都知道的1->2表达式,相当于1.->(2),方法名为->...

2020-05-23 19:38:22 361

原创 Scala 系列 - 函数

本文主要对 Scala 中的函数进行介绍匿名函数在 Scala 中不需要给每一个函数命名,就像是不需要给每一个数字命名一样。和 Python 中的 lambda 表达式有些相似// 匿名函数 把传入的参数乘3(X : Int) => 3 * X// 可以赋值给某个变量val func = (x: Int) => 3*xval a = Array(1,2,3)// 以下三种写法等价 将a中的每个元素乘3a.map(func)a.map((x: Int) => 3.

2020-05-22 23:48:19 169

原创 多分类问题的性能评价指标 f1-score

本文主要从二分类开始说起,介绍多分类问题的性能评价指标 f1-score首先,先给出二分类问题f1−scoref1-scoref1−score的计算公式,f1−score=112(1P+1R)=2PRP+Rf1-score = \frac{1}{\frac{1}{2}(\frac{1}{P}+\frac{1}{R})}=\frac{2PR}{P+R}f1−score=21​(P1​+R1​)1​=P+R2PR​ P=TPTP+FPP=\frac{TP}{TP+FP}P=TP+FPTP​ R=TPTP.

2020-05-22 13:13:21 10663

原创 使用 numpy 计算 r square

sklearn 实现 r2_score 的方法import numpy as npy_true = np.array([3, -0.5, 2, 7])y_pred = np.array([2.5, 0, 2, 8])r2 = 1 - np.sum((y_true - y_pred)**2) / np.sum((y_true - np.mean(y_true))**2)

2020-05-22 12:16:24 3677

原创 Scala 系列 - 跨行语句

本文主要介绍 Scala 中由于语句过长 需要跨行表示时候的方法当语句过长,一行写不下或者由于其他原因导致需要写跨行语句的时候,怎样做到语法以及语义正确呢?如果直接写成expression + expression会被解释成expression; + expression显然与我们的目的不符,我们可以使用如下两种方式完成(expression + expression)或者// 把操作符放在上一行后 告诉解释器我们语句还没有写完expression + expres.

2020-05-21 19:23:17 1038

原创 Scala 系列 - Value definition

本文主要对 Scala 中的 Value definition 的方法进行介绍变量定义可以用两种方式进行,第一种使用def关键字,第二种使用val或者var关键字。区别在于使用def关键字定义的变量,在每次变量被使用的使用的时候再计算它的值,就像调用函数一样,可以把def关键字定义的变量理解为是一个没有参数省略了返回值类型的函数而使用val或者var关键字定义的变量,在定义的时候就把它的值计算出来了。如下图所示,...

2020-05-21 16:33:06 393

原创 AutoML 系列 - TPE简介

本文主要对 Tree-structured Parzen Estimator Approach (TPE) 进行介绍SMBO 算法框架包含一系列优化算法,基本框架如下,而这个框架下的一系列算法的区别主要就在于选取的 surrogate model MMM 以及 评价标准 SSS。这里介绍一种基于这个框架的优化方法,Tree-structured Parzen Estimator Approach (TPE)TPE该方法选择的评价标准SSS为 Expected Improvement (E.

2020-05-19 16:20:06 4815

原创 AutoML 系列 - Hyperopt的介绍及使用

本文主要对 Hyperopt 和 Hyperopt-Sklearn 进行介绍Hyperopt 为一个超参数优化的库,主要使用的是SMBO ( Sequential model-based optimization )系列算法,包括:random search, Tree-of-Parzen-Estimators (TPE) 等。对于自动超参数优化系统来说,重要的就是给出 objective function 和 configuration space。下面给出一个具体例子from hyperop.

2020-05-19 13:11:23 809

原创 matplotlib系列 - 修改坐标轴ticks

修改坐标轴标签,字体,大小,方向,颜色以x轴为例,y轴同理plt.xticks([1,2,3], ["a", "b", "c"], size=25, rotation=-90, fontfamily="Times New Roman", c="white")[1,2,3]为原标签,可根据自身情况修改['a', 'b', 'c']为修改后标签,可根据自身情况修改,但是要与原标签长度相同size字体大小rotation旋转角度,负数为顺时针旋转,正数为逆时针旋转fontfamily字体c.

2020-05-18 15:11:34 1099

原创 Scala 系列 - 特质 Trait

本文主要对Scala中特质的概念与使用进行介绍特质是Scala里面代码复用的基础单元。Scala 不允许一个类从从个超类继承,只能继承唯一的超类,而可以有任意数量的特质。

2020-05-16 16:01:43 238

原创 Scala 中的几种打印方式

本文主要总结Scala中的几种打印方式println("type 2")// 不换行print("type 2")val a = "type 2"println(s"$a")println(s"${a}")printf("%s", a)printf("%s".format(a))以上几种方式均可以成功打印字符串 "type 2"

2020-05-15 22:36:55 2815

原创 机器学习 - 损失函数和支持向量机SVM

本文主要对机器学习的损失函数进行介绍回归一般来说,回归问题的 loss function 取决于 residual y−y^y-\hat yy−y^​,说明我们比较关心预测值y^\hat yy^​与实际值yyy之间的绝对差距。但是如果我们比较关心预测值y^\hat yy^​是实际值yyy的几倍的时候,可以将yyy做 log transform,然后就可以回到我们熟悉的残差版本。...

2020-05-14 21:02:43 874

原创 数据结构与算法-详解KMP算法

本文主要对KMP算法进行介绍KMP算法是一个序列匹配的算法,比如有两个序列s1和s2,想知道s1中是不是有一个和s2相同的子串,如果有,返回匹配的起始位置。最直觉最暴力的方法就是依次从s1的任何一个位置去匹配s2,假设s1的长度是m,s2的长度是n,这种做法的时间复杂度为O(m*n)。而这种做法我们没有在下一次匹配利用上一次匹配带来的信息,在KMP算法中,我们首先求s2序列中每一个字符的前面的字符串序列的最长前缀( 不包含最后一个字符 )和最长后缀( 不包含第一个字符 )的匹配长度,所有这些匹配长.

2020-05-12 22:18:39 406

原创 Vim常用操作整理

本文主要对 Vim 的常用操作进行整理复制整行到某处在要复制的行处yy,在要粘贴的地方p复制某一部分v进入可视模式,移动光标选中要选择的字段,y复制,p粘贴...

2020-05-12 11:34:26 171

原创 Spark编程基础-课堂笔记(五)

本文主要介绍类的继承,特质与模式匹配抽象类一个类包含没有被实现的成员,使用 abstract 关键字abstract class Car(val name:String){ // 抽象字段没有给出初始值,必须给出类型 val car:String def info() def greeting(){ println("This is a car") }}扩展...

2020-05-03 19:58:23 268

原创 Scala 系列 - 类

本文主要介绍scala中的类和对象类的定义方式// 定义counter类class counter{var value = 0// Unit指没有返回值// 返回值为Unit时候可以将 :Unit= 省略,但是后面大括号不能省略// 下面语句等价于 def increment(step:Int){value += step}def increment(step:Int):U...

2020-05-02 17:26:59 291

原创 Coordinate Descent

本文主要介绍一种除gradient descent之外的一种优化方法,coordinate descent我们的目标是最小化L(w)=L(w1,w2,w3,...,wn)L(w)=L(w_1,w_2,w_3,...,w_n)L(w)=L(w1​,w2​,w3​,...,wn​),和Gradient Descent(后简称GD)不同的是,在GD中,我们在每次更新www的时候是对www的所有维度...

2020-05-02 15:42:51 340

原创 Scala 系列 - 数据结构

本文主要对scala语言的数据结构进行介绍数组 Array元素具有相同类型// []中给出数组类型 ()中给出数组元素个数val ARR = new Array[Int](3)// 下标从0开始ARR(0) = 10// 自动推断类型val Arr = Array(1,2,3)// 高维数组 3行4列val Matrix = Array.ofDim[Int](3...

2020-05-01 16:21:22 186

原创 Spark编程基础-课堂笔记(二)

本文主要对scale语言的基本数据类型,输入输出,控制结构以及数据结构进行介绍基本数据类型其中String类型来自java.lang包,其余所有基本类型都来自scala包,例如,Int的全名就是scala.Int,但String的全名是java.lang.String。字面量字面量就是直接写在代码里的常量值// 整数字面量,数字开始于0x或者0X,为十六进制;// 开始于...

2020-04-30 23:44:52 276

原创 Spark编程基础-课堂笔记(一)

本文主要对厦门大学《spark》编程基础课程知识点进行记录大数据4V特性大量化 Volume多样化 Variety:数据不只限于结构化数据,目前非结构化数据居多处理速度快 Velocity:有实时响应的需求价值密度低 Value大数据关键技术数据采集:爬虫工具/ETL工具(抽取 转换 加载)数据存储与管理:分布式文件系统/分布式数据库/NoSQL数据库数据处理与...

2020-04-30 17:28:12 381

原创 机器学习-线性回归原理

本文主要介绍用梯度下降求线性回归最优解的数学细节线性回归令Y=[y1y2⋮ym]Y = \left[\begin{matrix} y_1 \\ y_2 \\ \vdots \\y_m \end{matrix}\right]Y=⎣⎢⎢⎢⎡​y1​y2​⋮ym​​⎦⎥⎥⎥⎤​,X=[x11x21⋮xm1]X = \left[\begin{matrix}x_1&1\\x_2&...

2020-04-30 12:53:29 194

原创 机器学习 - regularization

本文主要对机器学习中常用的两种正则化技术 L1/L2 regularization 进行介绍正则化技术可以说是一种对模型复杂度进行限制的方法,假设我们的hypothesis space为F\mathcal FF,模型为fff,模型复杂度为Ω(f)\Omega(f)Ω(f),Ω\OmegaΩ是一个从F\mathcal FF到R≥0R^{\geq 0}R≥0(指大于等于0的实数)的映射。所以在...

2020-04-29 20:26:46 330

原创 统计学习理论简介(二)

统计学习理论作为机器学习的基础,本文主要对统计学习理论进行简要介绍Excess Risk Decomposition上篇文章说到,对于hypothesis space F\mathcal FF,fF=argminf∈FE(x,y)∼PX×Y[l(f(x),y)]f_{\mathcal F}=argmin_{f\in \mathcal F}E_{(x,y)\sim P_{\mathcal...

2020-04-29 13:15:56 434

原创 包管理-常用pip命令

本文主要介绍常用的pip命令,安装的包以seaborn为例pip list查看已安装的包pip uninstall seaborn卸载seaborn包pip install seaborn安装seaborn包pip install seaborn==0.8.1安装指定版本的seaborn包pip install --upgrade seaborn更新seaborn包至最新版...

2020-04-28 11:40:18 195

原创 统计学习理论简介(一)

统计学习理论作为机器学习的基础,本文主要对统计学习理论进行简要介绍通常在我们处理一个机器学习任务的时候,会根据拿到的训练数据xxx和yyy,用某种模型/算法寻找一个xxx到y^\hat yy^​的映射,最终使我们寻找到的这种映射满足一定的评价标准。如果我们把xxx叫做input,yyy叫做outcome,y^\hat yy^​叫做action,评价标准叫做evaluation criter...

2020-04-27 16:09:33 883

原创 normalization in NNs

本文主要介绍neural networks中使用的normalization的方法Normalization的一般形式为y=aσ(x−μ)+by=\frac{a}{\sigma}(x-\mu)+by=σa​(x−μ)+bxxx为normalization layer的输入,μ\muμ为均值,σ\sigmaσ为标准差,aaa和bbb为待学习的参数,主要作用是为了使得normalizatio...

2020-04-26 23:10:08 173

原创 optimizer for neural nets

本文主要对Momentum和adaptive lr进行介绍Pytorch实现Momentum的方式Regular momentumpk+1=βk^pk+∇fi(wk)p_{k+1}=\hat{\beta_k}p_k+\nabla f_i(w_k)pk+1​=βk​^​pk​+∇fi​(wk​) wk+1=wk−γkpk+1w_{k+1}=w_k-\gamma_kp_{k+1}wk+1...

2020-04-26 22:21:28 229

原创 傅里叶变换(Part III)

本系列主要介绍傅里叶变换和离散傅里叶变换的概念及理解,文本为该系列第三篇单变量的离散傅里叶变换接着上一篇的取样,如果取样后函数为f~(t)\widetilde{f}(t)f​(t),其傅里叶变换为F~(μ)\widetilde{F}(\mu)F(μ),上一篇说到F~(μ)\widetilde{F}(\mu)F(μ)和原函数的傅里叶变换F(μ)F(\mu)F(μ)之间的关系,下面我们从另...

2020-04-25 21:25:12 335

原创 神经网络初始化方法-Xavier/kaiming

本文主要详解两种神经网络初始化的方法及如何使用Pytorch实现网络初始化Xavier 初始化对于神经网络中的layer ilayer \ ilayer i,假设它的输入是ziz^izi,si=ziWi+bis^i=z^iW^i+b^isi=ziWi+bi,激活函数为fff,满足f′(0)=1f'(0)=1f′(0)=1,经过激活函数后的输出为zi+1=f(si)z...

2020-04-23 16:34:28 1041

原创 机器学习降维方法 t-SNE 详解(一)

本文主要介绍一种用于降维和可视化的算法t-SNE,并且对其原理与使用进行讲解,本篇为第一部分t-SNE与SNESNEt-SNE的全称是t-Distributed Stochastic Neighbor Embedding,SNE就是 Stochastic Neighbor Embedding,所以要想了解t-SNE势必要先对SNE有所了解SNE algorithm:在高维...

2020-04-21 15:52:35 2486 1

原创 Cython系列3-变量声明

前两篇文章主要介绍了Cython是什么,以及如何编译和运行Cython code,本文主要对Cython进行深入介绍首先为什么使用Cython可以增加原来pure Python代码的运行速度呢,主要在于以下两点:预先编译( Cython) vs 运行时解释( Python )静态类型( Cython) vs 动态类型( Python )下面介绍一个最重要的Cython关键字cde...

2020-04-21 00:04:48 605

原创 傅里叶变换(Part II)

本系列主要介绍傅里叶变换和离散傅里叶变换的概念及理解,文本为该系列第二篇卷积相关与卷积操作的区别是卷积需要先将filter旋转180∘180^{\circ}180∘,w(x,y)w(x,y)w(x,y)和f(x,y)f(x,y)f(x,y)的卷积表示为w(x,y)⊗f(x,y)=Σs=−aaΣt=−bbw(s,t)f(x−s,y−t)w(x,y)\otimes f(x,y)=\Sigm...

2020-04-20 21:36:41 510

原创 深度学习科学炼丹

本文主要记录一些深度学习中的一些trick的使用及其原因 不定期更新为什么激活函数更喜欢ReLU而不是tanh或者sigmoid当我们网络比较深的时候,ReLU往往表现更好,因为ReLU只有一个拐点,而tanh/sigmoid有两个拐点(这里叫拐点不太准确),之后曲线就都趋近于平缓,这可能会导致梯度消失的问题,当输入到激活函数的值很大或很小时,会导致在反向传播的时候会导致这部分的导数很...

2020-04-19 17:03:48 607

原创 傅里叶变换(Part I)

本文主要介绍傅里叶变换的概念及理解

2020-04-18 21:12:45 1456

原创 matplotlib绘制分类器在二维平面的分类结果

本文主要介绍使用matplotlib对分类器在二维平面的分类结果进行可视化以iris数据集为例,取数据集前两列建模import matplotlib.pyplot as pltfrom sklearn.datasets import load_irisfrom sklearn.linear_model import LogisticRegressionX, y = load_iri...

2020-04-18 11:34:34 668

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除