bad

机器学习基石(4)--Feasibility of Learning

大兔子大兔子 提交于 2020-02-09 05:05:03
第一讲主要讲述了机器学习好像对已输入的data以外的数据没有什么办法进行学习。 通过从罐子里取弹珠的例子来引出霍夫丁不等式。 如果样本足够大的时候,sample中的比例就是population中的比例。 下图指明了霍夫丁不等式对于机器学习有什么意义: 输入的数据就相当于随机在罐子里抓的一把弹珠,也就是sample;整个罐子就是population;我们通过机器学习,学习到了sample内的各种规律,根据霍夫丁不等式,在sample内学习到的规律同样也可以应用到整个population当中去。 更新Flow: 引入E in (样本内误差)和E out (样本外/总体误差): 根据霍夫丁不等式,E in 和E out 应该是差不多的。也就是说在机器学习中,我们只需要最小化E in 就可以了,E out 也会随着E in 的变小而变小。(样本要足够大) 如果出现了一个BAD sample:就是抽样的结果和总体样本的真实的样子完全不同,他们相差很大。而且,当这个BAD sample又会被其中一个备选的hypothesis看中时,得出的E in 就会很小,而原本这个备选的hypothesis并不是我们想要的那个最佳的g,它只是因为BAD sample的原因误打误撞成为了最好的hypothesis,这种结果一定不是我们希望看到的。 BAD的资料虽然很小,但是还是会有如下的缺点:

JS 优雅指南 2

天涯浪子 提交于 2020-01-31 22:46:15
1. 富有准确性的命名 事实上,你完全可以使用 doSomeThing 代替所有的函数,毕竟它们真的只是提供某些微不足道的功能,但当你有了多个甚至是成百上千的函数时,这是一个灾难。这是一个浅显易懂的道理,即便是毫无经验的开发人员也会意识到命名爆炸的问题,他们隐约明白了什么是好的编程风格,但最后,甚至是大多数都止步于 doSomeThing 到 “优美” 的某一站上。 例 1, 命名只需要有必要的词,除非有必要,否则不要堆砌 // bad const theBook = {} const _b = {} const bookObj = {} const newBook = {} // good const book = {} 例 2,可读的条件判断 // bad if (username && username.includes('prefix-')) {} // bad const prefix = username && username.includes('prefix-') // bad const availableName = username && username.includes('prefix-') // good const hasPrefixName = username && username.includes('prefix-') 例 3,可读的函数

278. First Bad Version

和自甴很熟 提交于 2020-01-28 15:10:00
题目: You are a product manager and currently leading a team to develop a new product. Unfortunately, the latest version of your product fails the quality check. Since each version is developed based on the previous version, all the versions after a bad version are also bad. Suppose you have n versions [1, 2, ..., n] and you want to find out the first bad one, which causes all the following ones to be bad. You are given an API bool isBadVersion(version) which will return whether version is bad. Implement a function to find the first bad version. You should minimize the number of calls to the API

python smtp发送邮件:500 Error: bad syntax

核能气质少年 提交于 2020-01-28 11:27:16
reply: b'220 126.com Anti-spam GT for Coremail System (126com[20140526])\r\n' reply: retcode (220); Msg: b'126.com Anti-spam GT for Coremail System (126com[20140526])' connect: b'126.com Anti-spam GT for Coremail System (126com[20140526])' send: 'ehlo TOMAS-PC.DHCP HOST\r\n' reply: b'500 Error: bad syntax\r\n' reply: retcode (500); Msg: b'Error: bad syntax' send: 'helo TOMAS-PC.DHCP HOST\r\n' reply: b'500 Error: bad syntax\r\n' reply: retcode (500); Msg: b'Error: bad syntax' (500, b'Error: bad syntax') fqdn = socket.getfqdn() if '.' in fqdn: self.local_hostname = fqdn else: # We can't find an

Guess Number Higher or Lower

寵の児 提交于 2020-01-28 02:32:06
原题链接在这里: https://leetcode.com/problems/first-bad-version/ 题目: You are a product manager and currently leading a team to develop a new product. Unfortunately, the latest version of your product fails the quality check. Since each version is developed based on the previous version, all the versions after a bad version are also bad. Suppose you have n versions [1, 2, ..., n] and you want to find out the first bad one, which causes all the following ones to be bad. You are given an API bool isBadVersion(version) which will return whether version is bad. Implement a function to find the first bad

JavaScript语法规范

别等时光非礼了梦想. 提交于 2020-01-16 05:25:16
采用小写驼峰式命名 // good studentInfo // bad studentinfo STUDENTINFO 常量命名方式 // good const COL_NUM = 10; // bad const col_num = 10; 使用字面量 // good const obj = { name:'faker' } // bad let obj = {}; obj.name = 'faker'; 函数参数使用解构 // good function createPerson({ name, age }) { // ... } createPerson({ name: 'Faker', age: 18, }); // bad function createPerson(name, age) { // ... } 使用参数默认值 // good function createMicrobrewery(name = 'faker') { // ... } // bad function createMicrobrewery(name) { const breweryName = name || 'faker'; // ... } 函数式编程 // good const programmerOutput = [ { name: 'Uncle Bobby',

ES6 编程风格

喜欢而已 提交于 2020-01-11 06:34:21
块级作用域 (1)let 取代 var ES6 提出了两个新的声明变量的命令:let和const。其中,let完全可以取代var,因为两者语义相同,而且let没有副作用。 'use strict'; if (true) { let x = 'hello';} for (let i = 0; i < 10; i++) { console.log(i);} 上面代码如果用var替代let,实际上就声明了两个全局变量,这显然不是本意。变量应该只在其声明的代码块内有效,var命令做不到这一点。 var命令存在变量提升效用,let命令没有这个问题。 'use strict'; if (true) { console.log(x); // ReferenceError let x = 'hello';} 上面代码如果使用var替代let,console.log那一行就不会报错,而是会输出undefined,因为变量声明提升到代码块的头部。这违反了变量先声明后使用的原则。 所以,建议不再使用var命令,而是使用let命令取代。 (2)全局常量和线程安全 在let和const之间,建议优先使用const,尤其是在全局环境,不应该设置变量,只应设置常量。 const优于let有几个原因。一个是const可以提醒阅读程序的人,这个变量不应该改变;另一个是const比较符合函数式编程思想,运算不改变值

算法导论 chapter4

不想你离开。 提交于 2020-01-10 03:58:53
exercises: 1.Show that the solution of T ( n ) = T (⌈ n /2⌉) + 1 is O (lg n ). let T(n/2) <= c*lg(n/2), then T(n) = T(n/2) + 1 <= c*lg(n/2) + 1 = c*lgn -c + 1 <= c*lgn, as long as c >=1 2.We saw that the solution of T ( n ) = 2 T (⌊ n /2⌋) + n is O ( n lg n ). Show that the solution of this recurrence is also Ω( n lg n ). Conclude that the solution is Θ( n lg n ). let T(n/2) >= c*lg(n/2) then T(n) = T(n/2) + 1 >= c*lg(n/2) + 1 = c*lgn -c + 1 >= c*lgn, as long as 0<c<1 5.Show that the solution to T ( n ) = 2 T (⌊ n /2⌋ + 17) + n is O ( n lg n ). let m = n/2 + 17 and T(m) <= cmlg(m) then T ( n )

修复/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory问题

好久不见. 提交于 2020-01-02 15:21:57
修复/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory问题 背景 刚刚安装的CentOS 7.5 Mini版本系统,然后配置JDK环境,配置好后显示: [root@jenkins opt]# tail -3 /etc/profile export JAVA_HOME=/opt/jdk1.8.0_191 export JRE_HOME=$JAVA_HOME/jre export PATH=$PATH:$JAVA_HOME/bin [root@jenkins opt]# source /etc/profile [root@jenkins opt]# java -V -bash: /opt/jdk1.8.0_191/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory 报错了。。。根据提示查了下,发现缺少了 glibc.i686.... 通过查询,只要 在64系统里执行32位程序如果出现/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory,安装下glic即可 yum install glibc.i686 来源: https:/

10个实用的但偏执的Java编程技术

让人想犯罪 __ 提交于 2019-12-19 04:37:01
在沉浸于编码一段时间以后(比如说我已经投入近20年左右的时间在程序上了),你会渐渐对这些东西习以为常。因为,你知道的…… 任何事情有可能出错,没错,的确如此。 这就是为什么我们要采用“ 防御性编程 ”,即一些偏执习惯的原因。下面是我个人认为的10个最有用但偏执的Java编程技术。一起来看一看吧: 1.将String字符串放在最前面 为了防止偶发性的 NullPointerException 异常,我们通常将String放置在equals()函数的左边来实现字符串比较,如下代码: // Bad if (variable.equals("literal")) { ... } // Good if ("literal".equals(variable)) { ... } 这是随便用脑子想想就可以做的事,从Bad版本的代码改写表达式到Good版本的代码,这中间并不会丢失任何东西。欢迎不同的观点… 2.不要相信早期的JDK API 在Java早期,编程是一件非常痛苦的事情。那些API仍然很不成熟,也许你已经碰到过下面的代码块: String[] files = file.list(); // Watch out if (files != null) { for (int i = 0; i < files.length; i++) { ... } } 看上去很偏执?也许吧,但请看Javadoc