- 博客(36)
- 资源 (6)
- 收藏
- 关注
原创 使用python建模笔记
之前从来没有接触过python,然后这次项目需要,所以只能硬着头皮上。已经连续熬了三天的夜了,还不知道要熬多长时间。今天中午到达了崩溃点。但崩溃完还得接着做。或者说,不管你崩溃不崩溃,先把任务做完,之后没人管你。调代码的时候犯了很多错,为了避免之后犯相同错误,写这个笔记。首先最崩溃的是这个错误:foldPath = '/home/wyj/projects/rain/optical_
2017-08-22 15:20:11
2052
1
原创 项目笔记(二)
之前是十分基础的各项数据处理,但就是基础的数据处理,还是在昨天师兄的帮助下,最后完工的。出现了各种错误,各种完全想不到的错误。根据项目真正实施的步骤展开来总结自己的项目,遇到的各种问题,以及当时的解决方案,对解决方案的分析和现在仍然有的困惑。目的就是对10000行,每行有15*4*101*101个数据,得出10000*15个max(4个101*101矩阵)。解决思路很简单。最一开始
2017-08-18 16:05:45
357
原创 全部exercise的总结
这几天,第二次刷完了courera的8个习题,收获还是蛮大的。一最先学习的就是线性回归,也是理解最透彻的一个。线性回归的根本目的就是使得样本集中尽可能多的点集中分布在所画的线上。所以先推出来一个式子就是Y = WX + b。而我们要做的就是让计算得出的Y与真实的y的差距尽可能小。所以我们引入了损失函数,为了避免正负的影响,我们使用平方项,为了求导简单,我们使用1/2的系数。那么如何
2017-07-27 15:53:52
606
原创 exercise8补充
第一部分为高斯分布。给出了共有m个,n维的训练数据,需要对其中的每一个x进行预测。第一步就是对每一个维度的x求解平均值和标准差。这个任务在estimateGaussian中完成。上午开了一上午的会,到现在继续。上次有一个函数的作用没有理解透彻。上次遇见的函数是bsxfun,对于这个函数来说,处理机制是这样的。当两个参数维度相同时,直接各个位置对应运算,但是维度不同的时候,使用条件是两个参数
2017-07-27 14:52:16
920
原创 exercise8
最后一个练习了,已经有一点精疲力尽了,但还是想一鼓作气的做完,今天准备将题目先做完,明天研究一下整个文件,感觉整个文件的难度比较大,但是需要实现的部分还是比较简单的。第一个函数,estimateGaussian,就是计算平均值和方差,在这里注意使用恰当的函数可以很好的加快速度和使得代码简洁化。第二个函数就是根据查全率和查准率来的,直接带入公式就好。最后一个函数就是cofiCostFun
2017-07-26 20:52:44
339
原创 exercise7
开始聚类和PCA的学习了,后面的确越来越难了。但是聚类的原理还算是比较简单的。聚类的联系比较简单。题目完成了几乎所有麻烦的部分,我们需要做的就是算法的精华部分,总共有两点:1.找到与一个点最近的中心点2.对这些暂时在一类的点求取一个平均值,将这个平均值更新为中心点之后就进行PCA的学习了,主要目的就是将三维数据在保证最大精确度的情况下投影到二维空间中。函数都是很简单的,几乎都是
2017-07-26 20:03:01
442
原创 exercise6
今天开始做courera的exercise6。刚做的时候吓一跳,做了一下心理建设,是时候会一会SVM了,吼吼吼吼吼吼吼吼。在开头就是使用SVM进行分类操作。样本有两个属性,要把样本分成正例和反例。代码实在看不懂,所以上网先学习一下什么是SVM。
2017-07-26 15:44:37
439
原创 黑马题库(1)
开始实现前人已经完成的一个用jsp完成,数据库支持为mysql的题库管理系统。首先根据前人给出的各种资料,拼凑出了数据库中的每张表。一定要注意表的属性的大小写,以及类型和有效位的书写,否则之后改起来会很麻烦。还要注意的就是各个外键的映射关系等等。最后做完了,但不知道在之后的项目中会不会出错。之后就进行Java项目的引入。这个Java项目是用myeclipse书写的,一开始直接用eclips
2017-07-25 22:24:57
1915
原创 exercise5
这次习题的目的在最一开始并没有搞清楚。根据ex5这个函数对所有函数的调用,走一步看一步,首先就是对只有一维的简单的X进行建模。在这次建模过程中,又复习了损失函数和梯度的计算式。一切直接拿一个式子就可以计算出来。以后会遇到很多很多不同维度的计算,在计算的时候想一下式子的物理意义就比较容易计算出来了。theta_temp = [zeros(size(theta,2));theta(2:end)
2017-07-25 16:28:11
558
原创 exercise3
这次练习的重点是多分类问题和神经网络的实现randperm(n):随机打乱一个数字序列,结果是从1到n随机打乱得到的一个数字序列。首先需要了解one VS all的核心思想和步骤。这就是之前学习的线性拟合的升级版。对于之前的线性拟合来说,指的是知道X和y,不断调整参数使得X向量经过计算可以得到对应的y。这次的应用背景是对20X20的图片进行识别。所以每一个X向量共有401个
2017-07-21 15:25:01
326
原创 exercise2
补充知识:options函数:创建或者编辑一个最优化参数选项。options = optimset('param1',value1,'param2',value2,...) %设置所有参数及其值,未设置的为默认值options = optimset('GradObj', 'on', 'MaxIter', 400);在使用options的函数中,参数是由用户自行定义的,最大递
2017-07-21 11:44:28
530
原创 第二章 模型构建与选择
基本概念1.精度 :(1-a/m) x 100%,m为样本总个数,a为出错的样本数目。在训练集上的误差为经验误差。在新样本上面的误差为泛化误差。2.P问题:可以在多项式时间内解决并且验证答案。(多项式时间指的是复杂度中n总在下面。计算机可以承受其复杂度)。 NP问题:保证在多项式时间内验证问题的正确答案。 NPC问题:NPC问题就是一个NP问题领域的大boss。所有的NP问
2017-07-19 11:28:02
1738
原创 第一章—— 绪论知识点概括和习题详解
基本概念1.每一条记录是一个示例,共同组成数据集。 示例具有属性(特征),属性的取值为属性值,所有示例的可能属性取值组成属性空间。每一个属性的各项取值可以组成一个坐标向量,所以可以把示例成为特征向量。2.从数据中学的模型的过程为学习或者训练,通过执行某一个算法来完成。过程本身的目的就是实现贴近现实的假设。3.样例是拥有标注的示例。4.共两类学习任务:分类和回归。5.归纳:特殊到
2017-07-19 09:23:35
1630
原创 2.2 贝叶斯决策论——连续特征
损失函数精确的阐述了每种行为所付出的代价大小,并且用于将概率转换为一种判决。真正使用过程中,将上一节的X变成x向量。在计算损失个过程中,每一个类别计算错误的代价是不一样的,所以对于每一种损失都要加上权重。
2017-07-18 16:48:16
713
原创 二.贝叶斯决策论
2.1引言是一种基本统计途径出发点是利用概率的不同分类决策与相应的决策代价之间的定向折中。做出的基本假设:决策问题可以用概率的形式来描述,并且假设所有相关的概率结构已知。类条件概率密度:就是条件概率。A事件发生的情况下B事件发生的概率。x代表的是一种特征,特征的作用就是当x发生的时候,是其中某一种类别的可能性很大。所以可以用x作为区分的特征。先验概率为P(wj),意思是类别
2017-07-18 15:01:49
372
原创 1.4 设计循环 1.5学习和适应
1.模式识别系统过程开始——采集数据——选择特征——选择模型——训练分类器——评价分类器具体:1.数据采集2.特征选择重点是将先验知识和实验数据相结合3.模型选择4.训练训练是本文重点1.5 学习和适应有监督学习:分类和回归,所使用的数据是有标签的无监督学习:聚类。所用的数据是没有标签的。强化学习:利用模型输出,和真实值进行对比,不断改进模型
2017-07-18 13:38:32
228
原创 1.3 模式识别系统
1.传感器2.分割和组织3.特征提取出于实践考虑将特征提取器和模型分离器分开。通常提取具有以下性质的特征:同类非常相近,不同类有较大差异。4.分类器
2017-07-18 13:22:21
718
原创 模式分类学习笔记——绪论
准备 用一个礼拜的时间粗略的学习一下这本书,现在开始记录笔记。模式识别:输入原始数据并根据其类别采取相应行为的能力。最终目的和处理方法:1.将模型分为几类,然后对感知到的数据进行处理,一过滤干扰(由采样引起而非模型)。2.选择出与感知数据最接近的模型类别。
2017-07-18 09:17:45
701
原创 Plus One思路解析和源代码
题目的意思就是用数组存储了一个数字。当这个数字加1的仍然用数组存储正确的结果。如果最后一位小于8,则直接将最后一个数组元素加1如果最后一位大于8.需要进行如下操作:最后一位变成0,前面一位加1一直循环,直到有一位是不用进位的。 public int[] plusOne(int[] digits) { if(digits[digits.length-1]<9){
2017-03-02 09:55:10
535
原创 Length of Last Word思路解析和各种方法介绍
今天做的是LeetCode58.目的是找到字符串中的最后一个单词的长度如果最后为一个空格,说明不存在,或者字符串本身就是空的 ,也会返回0但有一点是以前没有注意到的,如果字符串是被一堆空格组成的,返回的也是空格的个数所以思路整理如下:如果最后一个为空格或者长度为0,返回0否则从后向前遍历,返回到空格之前的长度但后来发现是有问题的,如"a ",虽然是第一个字符串,
2017-02-28 19:33:17
862
原创 Max Subarray思路解析及源代码
if(nums.length==0) return 0; int max=Integer.MIN_VALUE; int maxnow=max; for(int i=0;i<nums.length;i++){ maxnow=nums[i]; for(int j=i+1;j<nums.length;j++){ if(maxnow<maxnow+nums
2017-02-25 09:46:41
629
原创 SameTree解法思路及源代码
今天做的是LeetCode100,判断两棵二叉树是否相等。在写完自己的代码之后和大神代码进行比对,发现这个问题的解决手法都是差不多的一开始想找有没有简便算法比如先判断结构再判断值可是发现无论用哪一种都需要递归到最底层,那还不如在递归的时候完成值是否相等的判断所以得到以下代码:public class Solution { public boolean isSameTree
2017-02-24 08:31:08
312
原创 Search Insert Position三种方法解析
今天做的是LeetCode35,寻找给定元素在数组中的位置,如果没有此元素的话给出插入的位置基本解法很简单: public int searchInsert(int[] nums, int target) { for(int i=0;i<nums.length;i++){ if(nums[i]==target||nums[i]>target) retur
2017-02-23 15:21:26
917
原创 Implement strStr()基本方法和反向思维和优质解法解析
今天做的是LeetCode27。题目要求是找到字符串中子字符串第一次出现的序号,当未找到时返回-1基本思路就是一个个字符进行比对一开始想的是从第一个字符开始一直向后代码如下: public int strStr(String haystack, String needle) { if((haystack.length()==0)&&(needle.length()==0))
2017-02-23 08:42:05
399
原创 Remove Element针对删除元素多和少的两种情况解析
今天做的LeetCode27还是蛮简单的,但是收获很大。此题的目的就是在序列中删除指定值。可以这么办从头开始遍历数组用count计数:记录这个元素在数组中出现的次数每个元素依次向前挪动这些个单位但感觉这个方法太笨了,转换思路,得到以下解法用两个指针,一个负责遍历全部元素,另一个指向当前符合要求的元素,得到如下代码:int removeElement(vector
2017-02-22 18:39:57
323
原创 Remove Duplicates from Sorted Array基本处理方法和集中优质解法解析
今天做了LeetCode的习题26,题目的目的是将排好序的序列中的重复元素去掉。这道题的目的就是在排好序的数组中删除重复元素。判断元素是否重复不会太难,因为数组是排好序的,难的是如何对重复元素进行操作。最简单的思路就是每发现一个重复元素就将后面的元素全部前移,但这对于长的数据来说是一种灾难。一定要找到更简单的方法解决此问题。还要注意约束条件是只能使用线性空间解决此问题,其他想到的一
2017-02-22 10:11:21
412
原创 Merge Two Sorted Lists
做了LeetCode21 ,题目的目的是归并两个已经排好序的链表。思考了一下,解题思路如下:本题的目的就是将两个排好序的列表重新排序为一个列表有一点像归并排序的归并阶段用C++的指针速度应该是比较快的首先,分别用两个指针指向两个链表的首部之后比较,将较小值放入新链表中,并且此指针后移,直到有一个指针指向空,之后把非空指针指向的元素及其后面元素全部加到结果链表中基本代
2017-02-21 19:50:09
305
原创 Valid Parentheses基本方法和几种优质解法解析
今天所做的习题是LeetCode20,Valid Parentheses,有很大的收获。第一个想到的就是利用栈先从左到右遍历字符串,找到所有的左部放到栈中,再从右到左遍历字符串,找到所有的右部放到栈中,之后开始进行匹配发现不匹配立刻返回FALSE到一方空了之后如果另一方也空了就返回TRUE否则返回FALSE后来发现这种思路是不对的,因为:([[]()
2017-02-19 09:17:09
1926
原创 Longest Common Prefix
今天做的是LeetCode习题10,寻找最长的前缀。用的是最一般的方法,很好理解,但是方法比较笨。具体思路就是先获取字符串数组中每一个字符串的长度,找到最小值。用一个嵌套循环,找到相同的前缀,完成任务。代码如下: public String longestCommonPrefix(String[] strs) { if(strs.length==0) return null;
2017-02-17 14:59:35
288
原创 Roman to Integer
今天做的习题是Roman to Integer的LeetCode,比较简单,重点是转换规则要用好,其他就没有什么了。但做完题之后还是不太明白为什么要用这个算法。思路为:1:将字符串转换为字符数组2:对字符数组的每一个符号进行判断如果大于前一个符号则加上如果小于则加上后一个符号并且减去两倍的此符号
2017-02-16 15:56:49
304
原创 有关于在VS2013中配置Parser Generator的步骤详解
自己在配置环境的时候花了很长时间,走了很多弯路,发现网上的资料比较少,也不够系统,所以写一下我的配置步骤。 首先在PG(Paser Generator)中先写一个测试文档(只创建了Yacc文件,功能是进行简单的加减乘除,只能输入1-9):%{/**************************************************************************
2016-10-19 17:57:09
4193
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人