逻辑回归
首先,逻辑回归是一个分类算法而不是一个回归算法,该算法可根据已知的一系列因变量估计离散数值(比方说二进制数值 0 或 1 ,是或否,真或假),它通过将数据拟合进一个 逻辑函数 来预估一个事件出现的概率。因为它预估的是概率,所以它的输出值大小在 0 和 1 之间(正如所预计的一样)。
[比利时的人口增长数量图]
more >>
首先,逻辑回归是一个分类算法而不是一个回归算法,该算法可根据已知的一系列因变量估计离散数值(比方说二进制数值 0 或 1 ,是或否,真或假),它通过将数据拟合进一个 逻辑函数 来预估一个事件出现的概率。因为它预估的是概率,所以它的输出值大小在 0 和 1 之间(正如所预计的一样)。
[比利时的人口增长数量图]
more >>
上次的 ITA 项目开始接触机器学习相关的知识,从本文开始,我将学习并介绍机器学习最常用的几种算法,并使用 scikit-learn 相关模型完成相关算法的 demo。
more >>
JavaScript 语言可以识别 7 中不同的数据类型,除 Object 外,其它均为基本数据类型,Object 为引用数据类型。
HTML 中的 <script> 元素定义了6个属性:
要注意的是,带有 src 的 <script> 元素中不应该再包含额外的代码,如果包含了嵌入的代码,则只会下载外部文件,嵌入的代码不会执行。
JavaScript = ECMAScript + DOM + BOM
1.ECMAScript 为 JavaScript 提供核心语言功能,是由欧洲计算机制造商协会(ECMA)39号技术委员会(TC39)制定的一种通用、跨平台、供应商中立的脚本语言和语义。ECMAScript 是一种由 ECMA 组织通过 ECMA-262 标准化的脚本程序设计语言。ECMA-262 标准没有参考 Web 浏览器,它规定了语言的语法、类型、语句、关键字、保留字、操作符、对象。
2.DOM (文档对象模型) 是针对 XML 但是经过扩展用于 HTML 的应用程序编程接口(API)。DOM 把 HTML 页面映射为一个多层节点结构,开发人员借助 DOM 提供的 API,可以轻松地删除,添加,替换或者修改节点。
3.BOM(浏览器对象模型)指的是由 Web 浏览器暴露的所有对象组成的表示模型。从根本上将 BOM 只处理浏览器窗口和框架,但是人们习惯把针对浏览器的 JavaScript 扩展也算作 BOM 的一部分,例如:浏览器弹出新窗口的功能;移动、缩放和关闭浏览器窗口的功能;navigator 对象;location 对象; screen 对象;cookies 支持;XMLHttpRequest 和 IE 的 ActiveXObject 对象。BOM 直到 HTML5 才有了规范可以遵守,在此之前每个浏览器都有自己不同的实现。
more >>最近在 ITA 写了一个聊天机器人的 Flask 服务,自己写了一些 node 单元测试脚本跑没有问题,但是测试的同学也想覆盖到所有的 case,于是就帮忙写一个 html 页面去测试,然后就遇到了下面的问题:
XMLHttpRequest cannot load http://localhost:8085/predict. No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘null’ is therefore not allowed access.
这个是典型的跨域问题(跨域是指:协议、域名、端口有任何一个不同,都被当做是不同的域),想想之前也了解过跨域的知识,现在借着这个机会总结一下了。关于 GET 请求的跨域,使用 JSONP 是目前最好的解决方案,各大浏览器也基本都支持 JSONP,而 jQuery,AngularJS 等前端框架也都默认添加了对 JSONP 的封装,并且这次遇到的跨域问题是 POST 请求的,于是暂时先不写关于 JSONP 的相关知识。
more >>Pandas 是 Python 做数据分析最重要的模块之一,本文源自Pandas 作者 Wes McKinney 写的 10-minute tour of pandas。
首先安装 Pandas 和相关的两个包 numpy、matplotlib
more >>继承是面向对象语言中最重要的概念之一,许多 OO 语言都支持两种继承方式:接口继承和实现继承。接口继承只继承方法签名,而实现继承则继承实际的方法。由于 ECMAScript 中没有方法签名,所以不能实现接口继承,而是通过原型链的方式完成实现继承。
每个构造函数都有一个原型对象,原型对象包含一个指向构造函数的指针,而所有实例中都包含一个指向原型对象的内部指针。下面是一个实现原型链的基本方法:
1 | function SuperType() { |
上述代码定义了 SuperType 和 SubType 两种类型,每个类型分别有一个属性和一个方法,SubType 通过改写原型对象的方式实现对 SuperType 的继承。原来存在于 SuperType 中的属性和方法,现在也存在于 SubType.prototype 中。在确立了继承关系后,我们给 SubType.prototype 又添加了一个新方法,这个例子中的关系图如下:
在上述代码中,我们修改 SubType 默认的原型为 SuperType 的实例,新原型不仅具有作为一个 SuperType 的实例所拥有的全部属性和方法,而且其内部还有一个指针,指向了 SuperType 的原型。最终的结果是这样的:instance 指向了 SubType 的原型,SubType 的原型又指向了 SuperType 的原型。
1 | instance.__proto__ === SubType.prototype // true |
在 JavaScript 中,只要创建了新函数,都会根据一组特定的规则为该函数创建一个 prototype 属性,这个属性指向函数的原型对象。默认情况下,所有原型对象都会自动获取一个 constructor(构造函数)属性,这个属性包含一个指向 prototype 属性所在函数的指针。比如:
1 | function Person () {} |
通过 constructor,我们可以继续为原型对象添加其他属性和方法。
创建自定义的构造函数之后,其原型对象默认只会取得 constructor 属性,其它属性和方法都是从 Object 继承而来的。
当调用构造函数创建一个新实例后,该实例的内部将包含一个指针([[Prototype]]),指向构造函数的原型对象,该指针在常用的浏览器中被定义为 __proto__。需要说明的一点是,该连接存在于实例和构造函数的原型对象之间,而不是存在于原型和构造函数之间。
1 | let leo = new Person() |
tag: