精华内容
下载资源
问答
  • 回溯法解决问题的3个步骤

    千次阅读 2015-04-14 10:47:25
    (1)针对所给问题,定义问题的解空间; (2)确定易于搜索的解空间结构; (3)以深度优先的方式搜索解空间; (4)回溯搜遍整个解空间,最后得到最优解。 N皇后问题也是回溯方法的典型应用。

    (1)针对所给问题,定义问题的解空间;

    (2)确定易于搜索的解空间结构;

    (3)以深度优先的方式搜索解空间;

    (4)回溯法搜遍整个解空间,最后得到最优解。

    N皇后问题也是回溯方法的典型应用

    展开全文
  • 最近因为想学Shader怎么写,于是需要学图形学知识,学习OpenGL又需要C++基础,所以 又去学C++,让我...编程其实就是解决问题,第一个“What”要解决什么问题,第二个“How”如何解决,第三个以及之后都是“Do”。 ...

    最近因为想学Shader怎么写,于是需要学图形学知识,学习OpenGL又需要C++基础,所以 又去学C++,让我重新认识了一边编程基础。
    编程流程图
    编程其实就是解决问题,第一个“What”要解决什么问题,第二个“How”如何解决,第三个以及之后都是“Do”。

    展开全文
  • 解决问题的四个步骤(一)

    千次阅读 2019-09-23 20:23:54
    注意:我们应该花80%的精力放在 拆解 定位问题 20% 去解决问题(合理) 明确和理解问题 在写代码出现bug的时候 我们都会去看日志,调试 靠编程软件来解决. 这一步就是 找问题. 如果报一404 无法说明更详细的错误原因...

    四步方法论:

    1. 明确和理解问题

    2. 拆分和定位

    3. 提出解决方案

    4. 总结问题

    注意:我们应该花80%的精力放在 拆解 定位问题 20% 去解决问题(合理)


    明确和理解问题

    • 在写代码出现bug的时候 我们都会去看日志,调试 靠编程软件来解决.
      这一步就是 找问题. 如果报一个404 无法说明更详细的错误原因, 我们接下来 就要明确问题
      明确问题=知识储备*踩过坑数量

    实现这个功能我们一定是有预期的,也了解它正常应该是什么样子的 这些知识 为我们理解问题 完成了大部分工作.

    理解能力==知识储备量逻辑分析

    然后我们就排查 这个程序本身 一步一步运行 到底是那一条 出现了和我们 预期不符的 现象

    这需要耐心更需要细心

    这个 过去后 在看.
    例子:

    1. 明确了 无法显示参数的原因是 传参的值变成了乱码
    2. 明确解决问题的目标是 找到设置编码的方式
    3. 明确可利用的资源 (老师讲过 , 自己学过做过比较,我就记得)

    拆分和定位

    复杂的问题和元问题

    1. 复杂问题是掺杂了多个维度和变量的问题; 这导致你无法直接达到目标且 解决方法也未能起效
    2. 元问题 最本质 最小 不可再分割的问题

    我们也许可以列一个面向关系的二维表 来罗列 这些属性

    拆解的目标就是解决
    步步为营, 有章法 有步骤的来.
    其实,大部分人面对复杂的问题都是蒙圈的.

    故事

    2019/7月/20日
    作为大四的我来到了实训基地,原来我们是学习安卓的 本以为可以继续学习 当个app开发人员什么的 .可是 学校安排我们学java和网页开发. 我当时是懵逼的, 我学了大三一年的 安卓 你告我不要再学了 ,这不好 那不好 ,然后要我 2月后做一个个人毕业设计
    . 吐血我完全不会啊,只能从头学起.

    当时我面对的问题就是 独立做出个人毕业设计 用 没练习过的编程知识来做.
    这个很复杂,要实现很多功能, 有很多困难.
    来 谁能把这个问题拆分一下

    这就是问题

    一个对这个完全陌生的东西 他没办法拆分 连基本识别都做不到
    但你说这个方式不可靠么? 绝对不是
    在学习jsp 中 我们实现项目 用的是 面向接口开发 开发流程是
    数据库—dao–sevice—servlet–页面
    这就是一个拆分的体现,真正做到了 步步为营

    到这我发现,小白无法
    思考:如何拆分,如何解决这个问题 这太难了
    比如 设计模式 ,MVC模式 ,接口

    我们学来用时最靠谱的,但要自己琢磨 还必须是个高手才能做到

    拆分出来是为了更好的组合

    组合我们用的 构建问题树+假设驱动

    就像玩变形金刚,你玩的时候突然卡住了 你就得拆开仔细看这个问题是如何发生的, 假设驱动 就是假设这个东西正确的方式是什么样子的 然后按照这个假设来调试.

    有时我们也常常因为 真的不知道,莫名其妙 而对看书正常的问题束手无策
    假设的提出需要知识支持

    而小白 往往知道怎么拆 ,但不清楚怎么组装.

    这个能力需要时间 不过可以先练练的水平

    拆也要讲科学,有理论支持
    麦肯锡知道不,嘿嘿
    MECE

    相互独立, — 不重叠
    完全穷尽 ---- 无遗漏

    当我们没有头绪的时候,往往 就会病急乱投医 抱着奇迹发生的心态 来上网找解决方法 ,然后 一个一个的试.

    说真的,我太难了 .

    这么做 往往是花了大量的时间,又解决不了 太难了.

    这时您赶紧冷静一下 ,思考一下我们这科学的思路.

    提出解决方案

    总结问题


    学习底层原理十分重要 这些作为分析问题的知识储备,让如同你在黑暗中 提着一盏明灯.

    学以致用 :从学过 到 熟练使用 专业 者之间 有着巨大的鸿沟

    需要 将这些基本知识在不同的 环境和 场景 反复使用 你一定感受到 万变不离其宗 这句话的真谛 (积累经验)

    好了到这里我们可以知道,我们要使用高明的技巧 必须有很多的知识储备 加 经验做支撑 否则你会感觉那就是鸡汤 或者 是空话.
    即使这些是"鸡汤" 但这就是对的 至少我认为. 我只是少了慢慢变强的耐心,不愿意花碎片时间去看一本书,或者反复的背计算机基础原理. 的确成为少数人 绝不容易,即使 成为少数人 ,你仍然会发现 这个位置的人 多到无法想象. 不过你你身后的人越来越多是没毛病的.

    学习别人总结的算法

    算法如同人生.
    我们也许没有能力做到规划,分解,掌握底层原理 但一定要不断学习.

    接下来我总结我学习了的人生算法又得到–老俞编写

    展开全文
  • 机器学习解决问题步骤

    万次阅读 2017-01-25 17:14:19
    机器学习解决问题步骤针对任何一打算由机器学习算法来解决的问题,都有一种『套路』存在,只要按照这模板『按部就班』就能够得到一结果。就跟一产品的生产流水线是一道理。但是得到结果的好坏跟你是否是...

    机器学习解决问题的步骤

    针对任何一个打算由机器学习算法来解决的问题,都有一种『套路』存在,只要按照这个模板『按部就班』就能够得到一个结果。就跟一个产品的生产流水线是一个道理。但是得到结果的好坏跟你是否是一个『熟练工』有很大的关系。因为在解决具体的问题中有许多的tricks对于结果的提升有所帮助。

    整个『套路』能分为以下5个步骤:

    1. 定义问题
    2. 对数据进行预处理
    3. 算法的抽查
    4. 对结果进行优化
    5. 结果展示

    这里非常笼统地概括了整个流程,对于实际的问题,还是需要『见风使舵』,要灵活运用模板。接下来对每一个步骤进行一些解释吧。

    定义问题

    这个步骤对于整个流程的重要性是显而易见的,如果在解决问题的一开始就已经犯了方向性的错误,结果只能是南辕北辙。例如拿一个分类算法去解决一个聚类问题,显然这并不能得到正确的结果。还有一个误区就是迷信性能强的算法,比如svm。任何的分类问题都是用svm去解决,有可能在一些情况下logistic回归能达到更好的结果。所以,首先就需要弄清楚问题的本质。

    这里我本人并没有非常丰富的实践经验,所以并不能给出非常多的建设性的意见。这里我只说说其中的一个点吧,就是寻找相似性的问题。这里有一个非常重要的技巧叫做fine-tuning。

    这里拿神经网络来举一个例子吧。某人已经在一个数据集上针对一个任务训练好了一个网络,如果你要解决的问题也同样是针对这一个数据集,只不过是任务不同。这一点其实在自然语言处理上还是比较常见的。那么就可以复用网络前面那些层的权值,只针对你的任务改变输出层或是输出层之前的几层。在学习率的设置上,因为前面层次已经是训练好的了,需要设置的比较小,而后面的层次需要设置的大一点。这样的做法能够显著地降低训练整个网络的时间。可以在较短的时间内获取一个还算不错的结果。

    我觉得迁移学习应该也算是一种吧,但是这个领域我其实不太了解,不能继续展开了。

    数据预处理

    所有的机器学习算法都是建立在数据的基础之上的。

    The more disciplined you are in your handling of data, the more consistent and better results you are like likely to achieve. 

    首先就是收集数据的过程,因为我并没有接触过实际的例子,所以对于这一部分也不了解。在这个数据爆炸的时代收集到数据应该不难,关键是要对数据进行正确的处理。

    之后就是数据的清洗过程,包括数据格式的转化(希望转换成算法所能处理的形式),数据的清洗(处理噪声数据,缺失值的处理),以及数据的采样(有可能我们并不需要这么多的数据)。这一块也是预处理过程的一个重点吧,恰好我也不是特别懂。

    之后呢,就是对于数据做一些等价的转换,包括统一数据的度量(这在距离计算时非常重要)、零均值化、属性的分解以及合并。接下来对属性的分解以及合并做出一些解释,这个在其他资料上倒是挺少见。

    属性的分解就是,一个属性能够分解为多个子属性,只有某一些子属性对于输出有着显著的影响。那我们就可以只存储这些子属性,而不用去存储原来的属性。例如时间这个属性可以分解为年、月、日、时、分、秒,可能只有月这个属性对于结果有影响,那我们只保留这个属性就好。

    属性的合并就是与属性的分解是对立的。将一些子属性合并成一个新属性后,这个属性对于输出的影响会更加显著。那我们就会选择将这些属性进行合并。例如『登录时间』这个属性,可能对于输出值没有什么影响,如果我们将其转化为『登录的次数』呢,结果可能就会大不一样了。

    数据预处理的过程并没有什么对错可言,只有合适与否。这还是需要非常深厚的功力的。对于以上步骤:

    You can follow this process in a linear manner, but it is very likely to be iterative with many loops.

    数据的分析

    这一部分本来是属于数据的预处理的,但是我觉得还是单独出来比较好。这个在我看过的资料中还是第一次出现。

    在拿到预处理完的数据之后,将其输入到算法之前,我们还是有必要对数据有一些了解,这样对模型中的参数选择能有一些帮助。这里主要包含两个方法:Summarize Data 和 Visualize Data。

    Summarize Data主要是分析数据中的一些内在属性。主要包括两个方面:Data Structure 和 Data Distribution。Data Structure指的是数据每一维属性的类型(是连续的还是离散的)。在针对一些具体问题时,可能需要将离散的属性连续化。Data Distribution指的自然是数据的分布。这里主要分析的是每一维数据的分布。如果是有标签的数据,可以弄清楚类别的分布,这样可以知道模型分类时准确率的下限。还可以做的更多的一点是,获取属性间的关联性。如果有关联的话,关联度有多大。这样有助于去除一些冗余属性(数据的降维),以及知道哪些属性对结果的影响比较大(权值的选择)。

    Visualize Data自然是对数据进行可视化操作。有那么多种图可以画,到底应该选择哪种类型的图呢?一般来说都是画柱状图和散点图。

    柱状图是描述出每一维度的值与其类标签之间的关系,也可以从图形中看出每一维的数据是服从何种分布的。特意盗了两张图。

    柱状图

    对每两组属性画出其散点图,这样可以较为容易地看出属性之间的关联性。

    散点图

    从上面的描述可以看出,Summarize Data 和 Visualize Data 两个过程之间是相辅相成的。

    算法抽查

    关于这一点,在这一篇资料中我也是第一次见到。

    对于一个具体的问题,我们也许有很多种算法可以对其进行求解,那么我们是不是需要对每一种方法都进行一次尝试呢?并不需要,因为那样太费时间,而且并不是所有的算法都能有效。抽查(spot-checking)就是对多个算法进行快速验证,以决定对哪一个算法进行进一步的训练。

    在进行算法的抽查时,并不需要使用使用数据集中的所有数据进行训练,只需要使用较小的一部分。在选择完算法之后,再使用所有数据进行进一步的训练。可以使用交叉验证的方法来进行该过程。

    在进行算法抽查时,处于候选集中的算法的种类越多样越好,这样才能测试出哪种类型的算法更能学习到数据中的结构。在选择完算法之后,并不一定直接使用该算法进行进一步的学习,可能会使用基于该算法的改进版本。

    在该部分中,还有很重要的一块内容就是训练集、测试集的划分,结果衡量标准的选择,以及结果的可信度。这一部分内容我也有写博客进行具体的阐述,毕竟水太深。

    结果的改进

    算法训练完成之后,如果算法的结果不如意,该怎么办?如果算法的结果还比较令人满意,有没有方法可以将结果再提升一点?这一部分主要就是解决这两个问题。文章中提出了三个方法:

    1. Algorithm tuning
    2. Ensembles
    3. Extreme Feature Engineering

    接下来分别叙述下这三种方法。

    算法中一般都充斥这很多的参数,对算法进行训练,主要是在这些参数形成的参数空间中寻找到一个点,使得目标函数达到最优。文章中提到了一种方法,就是对参数空间进行采样,发现那些可能的最优值点,再从这些点开始训练。可以重复这个过程几次,试图获取更优的解。但是,很坑的一点是,文章中并没有说明具体的采样方法。因为是进行了多次训练,造成过拟合的风险很大。

    第二中方法就是集成方法,这个会有一篇博客专门叙述这个算法。

    前两种方法都是试图在算法的本身做出一些突破,而第三种方法则是希望从数据本身着手。作者自己也说了,其实这种方法可以叫做『特征工程』,就是在数据的特征方面做出一些工作。通过特征的分解/合并,降低特征之间的关联性。有些情况也会将离散的特征值转变为连续的特征值。因为算法总是希望学习到数据中蕴含的某种模式,这样才能有更强的泛化效果。如果一个模式过于复杂,那么算法的效果必然会收到影响。所以,我们希望将这个复杂的模式进行分解,这就是这个方法的初衷。在每一次训练时都可以进行该步骤,获得新的训练/测试数据集(因为特征已经发生了变化),通过在新数据集上的学习结果,对之后特征的分解/合并产生一些指导性的建议。

    结果展示

    当你的算法能够较好地解决一个问题的时候,你当然希望将你的成果展示给大家。这里面就说到了两种途径:写一篇论文(或者什么类似的东西)、将其与实际的产品相结合。恰好,这两个方面我都没有经验,然后就没有然后了。

    写在最后

    给大家安利一个网站http://machinelearningmastery.com/start-here/,里面有许多机器学习的学习资源。内容译自这个网站。

    展开全文
  • 真正的高手,其实应该有能力用一套方法论去解决问题的所有,不管这问题再难,再新鲜,再简单都能搞定。 什么是问题?一言以蔽之,问题来源于现实与目标的差距。 因此,问题产生的原因可能是: ...
  • 用递归法解决问题

    千次阅读 2007-10-25 07:25:00
    (3) 学会用递归编写程序解决问题。 二、教材内容分析 本节教材包括如下内容:什么是递归、什么是自定义函数和递归的实现。从教材结构上判断这些内容是相互独立的,因此可以根据教师的教学习惯调整前后顺序。 ...
  • 电脑运行时经常卡顿,只需步就可以解决个问题! 2018-08-19 18:40 来源:97视角 计算机作为互联网时代不可或缺的产物,很多人在使用它的时候都会出现各种各样的问题,例如打开某个软件或者玩游戏时候经常会出现...
  • 分治的基本步骤

    千次阅读 2019-07-26 00:31:03
    分治在每一层递归上都有三个步骤: 分解:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题解决:若子问题规模较小而容易被解决则直接解,否则递归地解各个子问题; 合并:将各个子...
  • 用回溯法解决图着色问题

    万次阅读 多人点赞 2015-12-23 11:17:08
    海南师范大学学生狗一枚,最近老师要求算法设计论文一篇,,心累...其数学定义为:给定一无向图G=(V, E),其中V为顶点集合,E为边集合,图着色问题即为将V分为K颜色组,每组形成一独立集,即其中没有相邻的顶
  • 有效沟通要解决三个基本方面

    万次阅读 2018-02-27 23:20:15
    首先事先声明:这篇博文是听了王树文老师的项目管理微课程后自己整理的笔记,仅供学习。一.沟通1.沟通的重要性:我们非常清楚,在人与人之间的互动过程中,我们需要...3.要做到有效沟通,需要注意大基本要素:(1...
  • 分治法解决快速排序问题

    千次阅读 2016-03-14 10:20:15
    用分治实现快速排序问题 1.实验目的 (1) 掌握分治策略的基本思想及求解问题的主要步骤; (2) 应用分治策略的基本思想设计快速排序算法。 2.实验环境  Windows操作系统,VC++ 6.0。 3.实验内容 有n...
  • 众数问题(分治法解决

    千次阅读 2019-09-26 10:14:04
    一:题目 给定含有n元素的多重集合s,每元素在s中出现的次数称为该元素的重数...仔细思考,这道题目还可以用分治解决解决步骤: ①给数组排序; ②找出中位数v并且确定中位数的个数num和左右边界; ...
  • WACOM数位板没有压感问题解决步骤

    万次阅读 2018-03-12 14:12:19
    首先,和您购买的厂商沟通并下载驱动以及需要的第方库。一、先安装驱动,确保是您从官网下载下来的驱动,不要安装一些不知名厂商的驱动。我的是WACOM数位板,驱动在: ...
  • 文章源码在Github:https://github.com/jinchenghao/TSP本介绍用python解决TSP问题的第三个方法——分支限界算法介绍分支限界步骤如下:1) 按宽度优先策略遍历解空间树2) 在遍历过程中,对处理的每个结点i,...
  • Linux安装openssh详细步骤及遇到问题解决方案
  • 按道理来说,转成Json格式的好处很多。。。。。 但是作为刚刚入门技术的小白,很是心累。下面附上关于blender转成Json 的方法。(参考于three.js入门开发指南,但有更新改动,已经标注) ...以上步骤已经对obj、
  • 分治法解决大整数乘法问题

    千次阅读 2010-04-08 16:52:00
    通常,在分析算法的计算复杂性时,都将加法和乘法运算当作基本运算来处理,即将执行一次加法或乘法运算所需的计算时间,当作一仅取决于计算机硬件处理速度的常数。这假定仅在参加运算的整数能在计算机硬件对整数...
  • 举例讲解H3C配置层交换机4...学会这几个步骤之后就能解决所有的配置层交换机的问题。 language-modechinese//切换到中文模式 system-view//进入系统视图 [H3C]displaycurrent-configuration//显示当前配置
  • 最近在开发微信小程序遇见域名不合法问题,总结出了几个解决方法,希望能够有所帮助。 1>大多数人第一次用小程序应该不是自己感兴趣吧,比如做毕设或者什么的,这时候会去找网上的源码,来进行学习,这样快...
  • 解决问题最简单的方法

    千次阅读 2016-08-20 07:09:45
    这是一本小书,只有145页,7万字左右,花2小时就能读完,但你会学到立马提高你解决问题能力的10多种方法。
  • 动态规划法解决0/1背包问题详解

    万次阅读 多人点赞 2016-10-19 16:06:24
    动态规划(dynamic programming)是求解决策过程最优化的数学方法,把多阶段过程转换为一系列单阶段问题,利用各阶段之间的关系,逐个求解,创立了解决这类过程优化问题的新方法。 基本思想 将待求解的问题分解成...
  • 企业大数据规划需要的种能力和五个步骤 大数据规划有五个步骤,首先从业务驱动的角度,相关部门选择要解决和产生的业务场景。针对需求处理和采取整合这些场景需要的大数据。当然选择的重点是怎么使信息快速产生...
  • 用python3递归法解决汉诺塔问题

    万次阅读 多人点赞 2017-05-31 21:30:29
    汉诺塔问题: 从左到右 A B C 柱 大盘子在下, 小盘子在上, 借助B柱将所有盘子从A柱移动到C柱, 期间只有一原则: 大盘子只能在小盘子的下面. 如果有3盘子, 大中小号, 越小的越在上面, 从上面给盘子按顺序...
  • 《编译原理》构造 LR(1) 分析表的步骤与例题解析
  • 哪7步先简要给出步骤: 1. 明确清楚全面具体描述问题 ...以这来描述具体的问题1.全面描述问题我想做推荐算法的开发 我整理了有关推荐算法开发所需的背景知识,技能技术要求 我明确了那些要求我目前满足,哪些
  • 怎么去思考一问题,提高解决问题的能力 前言: #:本文转发自【半路歌雨】 #:http://blog.jboost.cn/think-like-a-programmer.html #:如有侵权,联系即删 技术人员的价值,不在于你能写出多么优美的代码,也不...
  • 下面是详细步骤,期间google解决了很多问题,有些问题困扰了好几天,希望能给以后安装的小伙伴一些帮助。  首先google搜索 w3af安装 然后根据搜索结果进入到官网的安装步骤说明页面...
  • 文章目录一、 安装eNSP环境必要的软件及其作用eNSP的介绍二、 正常的安装步骤三、 遇到异常问题及解决问题解决方案四、 分享资源及心得资源心得 一、 安装eNSP环境 必要的软件及其作用 1、 WinPcap是一数据捕获...
  • jar包冲突及解决步骤

    万次阅读 多人点赞 2018-10-10 17:35:41
    3-5:因为传递依赖导致了依赖版本的冲突,我们需要通过exclusion标签排除对应的传递依赖,试试看能否解决对应的问题 3-6:然后我们再次查看项目的依赖,确认我们的项目现在的依赖是没问题的 3-7:重新...
  • 一、项目建立步骤 首先我们要建立自己的项目文件夹,在这里我在电脑中建立了“STM32-project”在这其中建立了实例文件夹”example“,然后在example文件夹新建了“USER”文件夹用作存放用户代码如“main”等。好了...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 737,534
精华内容 295,013
关键字:

列表法解决问题的三个步骤