机器学习算法性能的检测和调优方法【方法+代码】

常见的几种方法

1.收集更多样本
2.使用更小规模的方法
3.增加方法的规模
4.使用多项式
5.增加正则化参数λ

如何判断下一步该采用什么方法

引入概念,误差(error),可用下面公式求得

对于线性回归:

对于分类算法:

如何划分我们的样本

按照比例6:2:2划分为三个样本,训练集,验证集,测试集
训练集:找到方法参数theta
验证集:确定方法多项式的度数d
测试集:确定正则化参数λ

通过学习曲线来确定高方差/高偏差

[W6]机器学习应用建议

根据学习曲线来选择要使用哪种优化方法

同上

代码部分

1.error的计算代码

[crayon-5a2e6679[……]

Read more

神经网络算法的代码分析【对应步骤分析文章】

使用Octave软件进行编辑

1.代价函数以及其正则化

2.激励函数的导数

3.随机初始化参数

4.向后递推求梯度grad并对其正则化

5.进行梯度检查,检查得到的grad是否正确

6.获取优化参数

[crayon-5a2e6679d47d515[……]

Read more

神经网络算法的实现步骤和细节处理【公式部分】

算法步骤

1.确定算法层次模型,有几层,几个隐藏层,每层有多少节点

2.使用feedforward算法计算出,a2,a3,z2,z3

3.写出代价函数J,并对其进行正则化

4.写出激励函数sigmoid的导数表达式

5.随机初始化参数Theta

6.使用向后递推法获取每层的grad,具体步骤如下

6.1获取输出层的误差

6.2获取其他层的误差

6.3获取每层的delta


7.进行梯度检查,检查向后递推所得的值的正确性


8.使用fmincg等高级优化方法传入我们所得的代价函数J和grad,获得最优化参数Theta

9.使用向前推导法[……]

Read more

springboot配置mybatis结合xml配置mapper的过程

文章目的

最近接触到springboot,用来初始化项目非常方便,于是拿来初始化了一下mybatis,结果发现,网上大部分的文章都是用注解方法进行mapper配置。
大家都知道,mybatis的一个特点就是所有的sql都在xml里,方便管理,还可以使用动态sql。
于是我开始尝试使用xml配置mapper,过程中遇到了一点点问题,现记录。

使用工具 idea-IU-172.4343.14

第一步,新建项目,步骤如下

1.选择spring init

2.输入信息,第二个是项目名

3.搜索添加要用的依赖,这里注意右边,我选择了三个,web,mybatis,postgresql(也可以选[……]

Read more

计算一组字符串的全排列[java]

问题

给出字符串”abc”计算其全排列
如abc,acb,bac,bca,cab,cba

思路

使用递归方法,每次确定一个未使用的字符,再递归寻找下一个未使用的字符,直到生成字符串长度与原来的长度相同,就返回,每次返回之后,要把这次的字符取消标记

伪代码

java完整代码

记一道坑很多的模拟题864C[Bus]

题目地址

http://codeforces.com/contest/864/problem/C

题目大意

总路程a,油箱容量b,加油站离出发点f,总共要跑k趟,问,至少需要加油多少次

分析

以每次到达加油站为基准点,判断是否可以跑完下一个端点–加油站的行程,如果可以,不加油,不可以,加油

有几种特殊情况
1.沿着当前方向,跑到端点结束,没有再从端点回加油站的过程
2.根本跑不到加油站
3.沿着当前方向,加一次油跑到下一个端点,结束

代码

开源数据库Postgresql安装/卸载总结

What Postgresql

一个开源数据库,类似mysql,由于mysql被收购了,这个数据库正被越来越多的使用

怎么安装?

安装非常简单,但是安装过后的初始化还是有点麻烦,具体可以看这篇文章

为什么要卸载?

安装好之后,如果你很倒霉的话,会遇到postgresql服务怎么都启动不了,输入psql指令显示没有服务的情况。
这时候,我们首先会使用apt-get remove postgresql删除软件,再重装,可不幸的是,这样是不行的!

怎么彻底删除?

遇到这种奇怪问题的不只一个人,所以我再stackoverflow找到了答案,下面就搬运过来,记录一下。
步骤如下

[cra[……]

Read more

Python中关于模块之间互相调用的总结

问题

在python里,假设我们有两个模块,A,B,在模块a中有文件a1,模块b中有文件b1.
结构如下
–a
—a1
–b
—b1
那么,在b1文件中调用a1里的方法,就会出现import error,告诉我们找不到这个模块

解决方法

对于这类问题解决方法很简单,由于他们的父级目录都是相同的,我们只需要在模块a中加入一个空的文件init.py(必须是这个名字,下划线前后都是两个),就可以将目录a转化为libroot。我们的调用这时候也就可以进行了。

更复杂的情况

上面的情况比较简单,但是往往我们使用的过程中会有更加复杂的情况,比如下面
–MyProject
—[……]

Read more

Android自定义View的实现方式总结

Android自定义view是什么

在我们的日常开发中,很多时候系统提供的view是无法满足我们的需求的,例如,我们想给一个edittext加上清除按钮,等等。
这时候我们就需要对系统的view进行扩展或者组合,这就是所谓的自定义view。

Android自定义view的种类

自定义view大概可以分为四个大类,主要是通过实现方式来区分
1.自绘控件,继承view,重写onDraw方法,在其中进行绘制,需要自己适配边距等等
2.继承ViewGroup派生的特殊Layout,主要用于实现自定义布局,也需要自己适配边距等
3.继承特定的View(如TextView等),不用自己适配支持wra[……]

Read more

Android性能优化——电池使用优化

为什么要做电量优化

Android应用开发中,需要考虑的情况是,如何优化电量使用,让我们的app不会因为电量消耗过高被用户排斥,或者被其他安全应用报告。

什么样的行为会导致电量损耗过高

对于移动设备而言,有以下几种行为会导致设备电量的消耗增加
1.屏幕保持开启状态
2.蜂窝网络的频繁启动与关闭

如何观测我们的应用电量使用情况

可以先使用以下adb命令,生成我们应用的电量使用情况txt

从电脑拔出手机,操作一会我们的目标app,再接上电脑

然后再去[……]

Read more