技术文章

机器学习|支持向量机参数求解

孤人 提交于 2021-02-17 06:30:12
01 — 支持向量机 支持向量机的简称为SVM,能在已知样本点很少情况下,获得很好的分类效果。 02 — SVM分类两个点 已知两个样本点,如果用SVM模型,决策边界就是线g,它的斜率为已知两个样本点斜率的垂直方向,并经过两个点的中点。 这条线g就是SVM认为的分类两个样本点的最好边界线。 03 — SVM分类多个点 添加更多的样本点,但是有意识地让它们符合上面的分布,此时的最佳决策边界发生变化了吗?没有。 样本点虽然多了,但是SVM认为起到支持作用的还是那两个点,support vector就是它们,名字得来了,当然因此决策边界也未变。 以上这些都是直接观察出来的,计算机是如何做这个事的? 04 — 启发 03节还启发我们,SVM建立决策边界时,只关心距离决策边界最近的那两个样本点,然后取距离它们都最远的决策边g ,认为g就是最佳决策边界。 05 — 趁热打铁:SVM目标函数 有了以上基础,SVM目标函数的结构差不多就知道了:max ( min() ),SVM添加了一个约束,得到的好处是目标函数更精简了: arg max 1/||w|| s.t., y*f(x)>=1 注意,这个更精简的目标函数,必须满足上面的约束,它们是共生关系,缺一不可。 06 — 最大值转化为求最小值 机器学习中,遇到目标函数求最大值的,都会转化为求最小值,常规套路,SVM也不例外。 它也很简单,分母最小

ES6关于Promise的用法

假如想象 提交于 2021-02-17 06:28:05
Node的产生,大大推动了 Javascript 这门语言在服务端的发展,使得前端人员可以以很低的门槛转向后端开发。 当然,这并不代表迸发成了 全栈 。全栈的技能很集中,绝不仅仅是前端会写一些 HTML 和一些 交互 ,后台熟悉 数据库的增删查改 。 想必接触过Node的人都知道,Node是以 异步(Async)回调 著称的,其异步性提高了程序的执行效率,但同时也减少了程序的可读性。如果我们有几个异步操作,并且后一个操作需要前一个操作返回的数据才能执行,这样按照Node的一般执行规律,要实现有序的异步操作,通常是一层加一层嵌套下去。 为了解决这个问题,ES6提出了 Promise 的实现。 含义 Promise 对象用于一个异步操作的最终完成(或失败)及其结果值的表示 。简单点说,它就是用于处理异步操作的,异步处理成功了就执行成功的操作,异步处理失败了就捕获错误或者停止后续操作。 它的一般表示形式为: new Promise( /* executor */ function(resolve, reject) { if (/* success */) { // ...执行代码 resolve(); } else { /* fail */ // ...执行代码 reject(); } } ); 其中,Promise中的参数 executor 是一个执行器函数,它有两个参数

windows环境 springboot+docker开发环境搭建与hello word

流过昼夜 提交于 2021-02-17 06:23:12
1,下载安装 docker toolbox 下载地址: http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/ docker toolbox 是一个工具集,它主要包含以下一些内容: Docker CLI 客户端,用来运行docker引擎创建镜像和容器 Docker Machine. 可以让你在windows的命令行中运行docker引擎命令 Docker Compose. 用来运行docker - compose命令 Kitematic. 这是Docker的GUI版本 Docker QuickStart shell. 这是一个已经配置好Docker的命令行环境 Oracle VM Virtualbox. 虚拟机 下载完成之后直接点击安装,安装成功后,桌边会出现三个图标,入下图所示: 点击 Docker QuickStart 图标来启动 Docker Toolbox 终端。 boot2docker用户和密码 用户 密码 进入方式 docker tcuser ssh root command:sudo -i (docker用户下执行) 配置中国版加速器 在当前用户文档下面有一个.docker文件夹中machine\machines\default下的config.json文件 修改配置文件"HostOptions

超详细的Fastjson<=1.2.47反序列化漏洞复现

匆匆过客 提交于 2021-02-17 06:17:31
本公众号专注于最新漏洞复现,欢迎关注! ---------------------------------------------------------------------------------------- 本文作者:daxi0ng(Timeline Sec新成员) 本文共1946字,阅读大约需要6分钟 0x00 简介 fastjson 是阿里巴巴的开源JSON解析库,它可以解析 JSON 格式的字符串,支持将 Java Bean 序列化为 JSON 字符串,也可以从 JSON 字符串反序列化到 JavaBean。 0x01 漏洞概述 首先,Fastjson提供了autotype功能,允许用户在反序列化数据中通过“@type”指定反序列化的类型,其次,Fastjson自定义的反序列化机制时会调用指定类中的setter方法及部分getter方法,那么当组件开启了autotype功能并且反序列化不可信数据时,攻击者可以构造数据,使目标应用的代码执行流程进入特定类的特定setter或者getter方法中,若指定类的指定方法中有可被恶意利用的逻辑(也就是通常所指的“Gadget”),则会造成一些严重的安全问题。并且在Fastjson 1.2.47及以下版本中,利用其缓存机制可实现对未开启autotype功能的绕过。 0x02 影响版本 Fastjson1.2.47以及之前的版本

优秀程序员和一般程序员差别在哪?

主宰稳场 提交于 2021-02-17 06:17:03
摘要: 在这个世界上有两种程序员:Day Programmers(白班程序员)和Night Programmers(夜猫子程序员),你知道优秀程序员和一般程序员有哪些差别吗?你又是哪一类型的呢?俗话说不想当CEO的程序员,不是好的产品经理。程序员们,加油吧! 还记得研发频道此前发表过的一篇《 白班程序员 VS. 夜猫子程序员 》吗?在这个世界上有两种程序员,我们称之为:Day Programmers(白班程序员)和Night Programmers(夜猫子程序员)。本文我们将探讨优秀程序员和一般程序员有哪些差别,看看您是属于那一种?来自 知乎网 上的大牛们各抒己见,一起来看下他们是如何区分的。 如果纯以编码能力来看,可分为五类 1. 拷贝型 拷贝型选手就是传说中的“代码拷贝员”了,他们对实现功能几乎没有思路,所作的事情就是从网上或是之前其他团队成员写的代码中拷贝出片段,然后放到项目中,如果运行项目出现了期望结果,则表示任务完成。这类人只会改代码,却不会写代码。他们大多对编程毫无兴趣,只是希望以此糊口而已。 2. 新手型 当产品有功能需求时,由于经验有限,程序员并不完全知道要如何实现这个功能,需要通过学习、寻找资料等方式来解决问题。这种情况下的编码过程,程序员的主要目标是“完成功能”,那么很难有多余的心思去考虑边界条件、性能、可读性、可扩展性、编码规范等问题,因此代码bug可能较多

AkShare-另类数据-胡润排行榜

99封情书 提交于 2021-02-17 06:02:49
作者寄语 胡润排行榜:百富榜,富豪榜,至尚优品 更新接口 "hurun_rank" # 胡润排行榜 胡润排行榜 接口: hurun_rank 目标地址: http://www.hurun.net/CN/HuList/Index?num=3YwKs889SRIm 描述: 获取胡润排行榜的百富榜, 富豪榜, 至尚优品的榜单数据 限量: 单次返回指定指标和年份的榜单数据 输入参数 名称 类型 必选 描述 indicator str Y indicator="百富榜"; choice of {"百富榜", "富豪榜", "至尚优品"} year str Y year="2020"; {"百富榜": "2015至今", "富豪榜": "2015至今", "至尚优品": "2017至今"} 输出参数-百富榜和富豪榜 名称 类型 默认显示 描述 排名 int Y - 姓名 float Y - 财富 str Y 注意单位: 亿元 出生日期 str Y - 关联企业 str Y - 主营行业 str Y - 输出参数-百富榜和富豪榜 名称 类型 默认显示 描述 类别 int Y - 奖项 float Y - 排名 str Y - 品牌 str Y - 接口示例 import akshare as ak hurun_rank_df = ak.hurun_rank(indicator= "百富榜" ,

AkShare-另类数据-空气质量

醉酒当歌 提交于 2021-02-17 06:02:11
作者寄语 今日修复空气质量数据接口,并增加一部分新数据。一个对商品期货来说比较有意思的用法是可以监测炼钢厂区的空气质量情况来评估钢厂的开工情况。还有其他有意思的用法等待挖掘。 AkShare 另类数据 空气质量-全国 城市列表 接口: air_city_list 目标地址: https://www.aqistudy.cn/ 描述: 获取所有空气质量数据的城市字典 限量: 单次返回所有可以获取的城市的字典 输入参数 名称 类型 必选 描述 - - - - 输出参数 名称 类型 默认显示 描述 example: {'北京': '北京'} dict Y 字典映射 接口示例 import akshare as ak air_city_dict_map = ak.air_city_dict() print(air_city_dict_map) 数据示例 {'北京': '北京', '上海': '上海', '广州': '广州', '深圳': '深圳', '杭州': '杭州', '天津': '天津', '成都': '成都', '南京': '南京', '西安': '西安', '武汉': '武汉', '阿坝州': '阿坝州', '安康': '安康', '阿克苏地区': '阿克苏地区', '阿里地区': '阿里地区', '阿拉善盟': '阿拉善盟', '阿勒泰地区': '阿勒泰地区', '安庆':

PON简史

岁酱吖の 提交于 2021-02-17 05:59:33
大家好,我是小枣君。 之前有不少同学问EPON、GPON、10G PON、XG-PON、NG-PON2到底是什么关系。今天通过这篇文章,我详细给大家介绍一下。 01. EPON和GPON 故事要从PON的起源开始说起。 上世纪80年代, 计 算机和多媒体技术崛起 , 越来越多的人开始拥有 电脑 ,也 开始接触网络( 局域网或互联网 ) 。 于是,数据通信业务 开始兴起,上网 需求出现 。 早期的时候,运营商能提供的上网服务,基本上都是通过电话线、双绞线(网线)、同轴电缆这样的铜制线缆。技术包括ADSL ( 非对称数字用户线路)和 ISDN专线 ( 综合业务数字网 ) 等。 ADSL Modem 这些方式要么速率很慢,要么成本很高,并不能满足用户的需求。 于是,光纤作为一种新型通信介质,开始进入了人们的视野。 光纤维 自从1966年华裔科学家高锟先生通过一篇论文奠定了光纤通信理论基础之后,这项技术便进入了高速发展的阶段 。 光纤制造工艺不断成熟,产业链也日益成型。 到了80年代末,为了将光纤应用于宽带接入业务,陆续有厂商推出了自己的窄带PON技术。当时,这种技术速率很低,不超过2Mbps。 而且, 因为厂商们 各自为战, 所 以一直没有形成统一的规范和标准。 1995年,包括BELLSOUTH、BT、France Telecom在内的7家网络运营商共同发起成立了 全业务接入网联盟

python:函数中五花八门的参数形式(茴香豆的『回』字有四种写法)

喜欢而已 提交于 2021-02-17 05:48:41
毫不夸张的说,python语言中关于函数参数的使用,是我见过最为灵活的,随便怎么玩都可以,本文以数学乘法为例,演示几种不同的传参形式: 一、默认参数 def multiply1(x, y): return x * y print("multiply1:", multiply1(2, 3)) 输出 multiply1: 6 ,这是最平淡无奇的函数写法。 python支持默认参数,比如:如果想让1个数自动乘10,又不想定义新的函数,上面的代码,可以改成: def multiply1(x, y=10): return x * y print("multiply1:", multiply1(2, 3)) print("multiply1:", multiply1(2)) 输出 multiply1: 6 multiply1: 20 另外,调用函数时,除了按顺序依次给值外,还可以“显式”的命名传值,示例如下: print("multiply1:", multiply1(x=2, y=4)) print("multiply1:", multiply1(y=3, x=5)) print("multiply1:", multiply1(x=4)) 输出: multiply1: 8 multiply1: 15 multiply1: 40 显式指定参数名称后,顺序就不重要了。 二、可变参数(tuple)

Vuex持久化插件-解决刷新数据消失的问题(vuex-persistedstate)

南笙酒味 提交于 2021-02-17 05:38:14
Vuex持久化插件-解决刷新数据消失的问题(vuex-persistedstate) 参考文章: (1)Vuex持久化插件-解决刷新数据消失的问题(vuex-persistedstate) (2)https://www.cnblogs.com/yangxuan/p/11064895.html 备忘一下。 来源: oschina 链接: https://my.oschina.net/u/4428122/blog/4953274