,可以登录计算节点的3325端口,可执行管理端的所有SQL语句;否则,不能登录管理端与执行管理端的SQL语句。 权限范围分为全局权限、逻辑库权限及表权限: 全局权限:拥有全局权限的user对所有逻辑库下的所有对象都拥有指定的权限。 拥有表允许权限的用户对该表拥有勾选的权限;拥有表拒绝权限的用户将拒绝勾选的权限,对于没有勾选的权限,需要在表允许权限下勾选后方能拥有。 表,只拥有id大于60的行的权限。 ",这可能是该版本的动态链接库不兼容,需要将其目录下的libmysql.dll替换为MySQL Workbench中的同名文件,或者更新到更高的版本,参考链接。
把现在的工作做好,才能幻想将来的事情,专注于眼前的事情,对于尚未发生的事情而陷入无休止的忧虑之中,对事情毫无帮助,反而为自己凭添了烦恼。 全文字数:864字 阅读时间:8分钟 前言 本系列是《玩转机器学习教程》一个整理的视频笔记。本小节主要依据sklearn的设计理念封装我们自己的逻辑回归算法,最后在jupyter中调用并实现。 a 实 现 逻 辑 回 归 算 法 在之前的小节中详细推导了逻辑回归算法的损失函数。 接下来就具体的实现我们自己的逻辑回归算法: 导入相应的模块 由于逻辑回归算法解决的是分类问题,所以通过accuracy_score准确率来评估模型的好坏。 相对于线性回归来说,添加了私有的Sigmoid函数,更改了计算损失函数的J函数以及计算梯度值的dJ函数。
方程组为:x^9-4*x^5-5*x^3-270000=0,范围为0~10; C++代码方式: #include <iostream> #include "math.h" #include <iomanip 便于实时看看结果 输出结果可以看到为4.02057 为了验证我的结果是否正确,我在用matlab自带的fsolve函数来求解一遍 >> x = fzero("x^9-4*x^5-5*x^3-270000 ",2); >> x x = 4.0206 >> x^9-4*x^5-5*x^3-270000 ans = -5.8208e-11 和我的结果很接近,而且这个误差符合要求,但我把C ++的计算结果4.02057带入方程组去计算,发现这个误差值为1.897,和预计的相差较大, >> x = 4.02057 x = 4.0206 >> x^9-4*x^5-5*x^3-270000 为:4.020566884828,在matlab中计算一下 >> x = 4.020566884828 x = 4.0206 >> x^9-4*x^5-5*x^3-270000 ans
习题9-4 查找书籍 给定n本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和最低的书的名称和定价。 输入格式: 输入第一行给出正整数n(<10),随后给出n本书的信息。 每本书在一行中给出书名,即长度不超过30的字符串,随后一行中给出正实数价格。题目保证没有同样价格的书。 输出格式: 在一行中按照“价格, 书名”的格式先后输出价格最高和最低的书。价格保留2位小数。
例9-4 使用turtle绘制图形,响应鼠标左键、中键、右键的单击事件。
自2019年10月底《数据安全架构设计与实战》出版 以来,受到安全圈各位同行的大力支持,目前已印刷2次。其“从源头打造安全的产品,保障数据安全”的理念也不断获得大家认可。 本着为读者负责的原则,现将勘误表发布出来: 2019年12月第1版第2次印刷勘误 P102(9.3节)图9-4第四个方框应为“乙方私钥解密” P149(12.4.4节)“HIDS需要针对以上口风险”应为 ,能够征得用户同意的,首选“同意”。 欧盟的电子隐私法也有“营销活动需要获得用户的明示同意”的要求。 P261(16.6节)第7个小标题下面的文字介绍应为:隐私管理体系认证,其重要性相当于信息安全管理体系的ISO 27001。 2019年10月第1版第1次印刷勘误 P98(9.1节)图9-1右下侧编号⑧应为编号⑤ P102(9.3节)图9-4第四个方框应为“乙方私钥解密” P126(11.3节)“访问使用临时随机口令”应为“访客使用临时随机口令
(1)选中要启用FT的虚拟机,右击在弹出的对话框中选择”Fault Tolerance→打开Fault Tolerance”,如图9-1所示。 图9-1 打开容错功能 (2)由于我们是在虚拟机中做的这个测试,在打开FT时会有个故障提示”与主机关联的虚拟网卡宽带不足,无法用于FT日志记录”,如图9-2所示。实际上这个提示不影响后期的测试。 在新版本的FT中,主虚拟机与辅助虚拟机可以放置在不同的数据存储中,这进一步提高了”容错”的安全性,如图9-3所示。在此为辅助虚拟机选择另一个共享存储。 图9-3 为辅助虚拟机选择数据存储 (4)在”选择主机”对话框,为辅助虚拟机选择主机,如图9-4所示。辅助虚拟机、主机要运行在不同的主机上。 图9-4 为辅助虚拟机选择主机 (5)在”即将完成”对话框,显示辅助虚拟机详细信息,这包括辅助虚拟机所在主机、配置文件位置、硬盘位置等,如图9-5所示。
前文我们讨论了使用/refresh 端点手动刷新配置,但是如果所有微服务节点的配置都需要手动去刷新的话,那必然是一个繁琐的工作,并且随着系统的不断扩张,会变得越来越难以维护。 因此,实现配置的自动刷新是很有必要的,本节我们讨论使用Spring Cloud Bus实现配置的自动刷新。 Spring Cloud Bus提供了批量刷新配置的机制,它使用轻量级的消息代理(例如RabbitMQ、Kafka等)连接分布式系统的节点,这样就可以通过Spring Cloud Bus广播配置的变化或者其他的管理指令 原因如下: (1) 打破了微服务的职责单一性。微服务本身是业务模块,它本不应该承担配置刷新的职责。 (2) 破坏了微服务各节点的对等性。 (3) 有一定的局限性。 图9-4 使用Spring Cloud Bus的架构图 如图9-4,我们将Config Server也加入到消息总线中,并使用Config Server的/bus/refresh端点来实现配置的刷新。
---- 一:基本RS触发器 PS:我的目标是记住各个触发器的真值表,学会各个触发器的波形画法,下同。 以上是基本RS触发器的电路结构和逻辑结构,了解一下即可。 ,不然看S,S是1,输出就是1,反之就是0 波形: ---- 三:主从RS触发器 真值表: CP=1 保持 CP=0 R S Q 0 0 不变 0 1 1 1 0 0 1 1 不定 波形见例题9- ---- 四:JK触发器 真值表: ---- 五:D触发器 真值表: 波形见例题9-6 ---- 作业是我用钢笔做的,书写墨汁方面比较尴尬。
image.png 上述算法中,第一个循环对应了簇分配的步骤:我们构造向量c,使得c(i)的值等于x(i)所属簇的索引,即离x(i)最近簇中心的索引。用数学的方式表示如下: ? 第二个循环对应移动簇中心的步骤,即移动簇中心到该簇的平均值处。更数学的方式表示如下: ? 其中 ? 都是被分配给簇 ? 的样本。 例如根据人的身高和体重划分T恤的大小码,如图9-4所示。 ? 图9-4 K-means for non-separated clusters 9.3 Optimization objective image.png 9.4 Random Initialization The elbow method : 画出代价J关于簇数K的函数图,J值应该随着K的增加而减小,然后趋于平缓,选择当J开始趋于平衡时的K的取值。如图9-5的(1)所示。
image.png Java 中的算术运算符主要用来组织数值类型数据的算术运算,按照参加运算的操作数的不同可以分为一元运算符和二元运算符。 首先计算赋值符号(=)右边配对的括号内的值,其次按从左向右的结合方向计算乘法,最后做求余运算,表达式的结果为 2, 然后把 2 赋值给 d。 "); // 整数的加、减、乘、除和取余 System.out.printf("9+4=%d \n", 9 + 4); System.out.printf("9-4=%d \n", 9 ", 'A' + 32); System.out.printf("'a'-'B'=%d \n", 'a' - 'B'); } 执行结果: 整数的算术运算 9+4=13 9-4=5 9*4=36 算术运算符的结合方向都是“从左至右”,即先左后右。因此 b 先与减号结合,执行“a-b”的运算,再执行加 c 的运算。
,接下来先给大家讲一下整型家族的数据存储。 注:char本质是ASCll码值,划分为整型家族。 1.补码的理解 我们都知道计算机是只能识别二进制的,也就是1和0(分别是高电平和低电平)。 而这些数据类型最终都会被转化为二进制的补码存储,使用补码存储的好处在于,使CPU在对这些数据进行运算时得到了简化,要知道CPU是不能进行减法运算的,那么它是怎么实现两个数相减呢? 举个例子2-1,可以转化为2+(-1)结果是相同的 也就是2和-1的二进制的补码相加,那么补码是怎样实现这样的运算,用到了一个溢出原理,我们想象一个时钟, 一共有12个点,11点加2得到的是1而不是13 ,那么比如9-4可以写为9+8. 2.整型提升 讲了存储,接下来是如何打印的问题,如何存储是由计算机来决定的,而怎样打印是由程序员自己来决定的,一个数,我们比如可以打印%o,%d,%x,%c,%s,%f...但这个过程总会出现一些问题,
,也就是O(n^2) 分析暴力求解,我们发现存在重复搜索的情况,也就是对数组中的部分数据搜索了多次。 那如何只对数组中的数据搜索1次(或常数级),然后求解呢? 我们知道,寻找一个数是否存在,最快的方法是通过hash表,在O(1)的时间复杂度之内就可以判断是否存在某个数。 题目要求我们返回数组的下标,那么我们的hash表的key是数组元素的值,value是下标。 这种方法在最坏的情况下,对数组遍历了2次,也就是算法的时间复杂度是O(2n),去掉前导系数是O(n),虽然是相比暴力求解,算法的时间复杂度降低了,但是还有优化的空间。 find(9-4), 存在那返回这两个数的下标,如果不存在,那么将 4 放入hash表。 find(9-6), 存在那返回这两个数的下标,如果不存在,那么将 6 放入hash表。
但是在程序运行的过程中,这些对象或者配置文件使用的频率并不是很频繁,甚至是只有个别很少使用的功能在使用这些配置文件。 此时,为了优化应用的启动性能,我们就可以对这些对象的创建和配置文件的加载进行延迟处理。 具体的源码执行细节参见源码解析部分。 4.2 调用Bean后置处理器的源码时序图 @Lazy注解涉及到的调用Bean工厂后置处理器的源码时序图如图9-2~9-4所示。 由图9-2~9-4可以看出,@Lazy注解涉及到的调用Bean工厂后置处理器的流程涉及到LazyTest类、AnnotationConfigApplicationContext类、AbstractApplicationContext 5.2 调用Bean后置处理器的源码流程 @Lazy注解在Spring源码层面调用Bean工厂后置处理器的执行流程,结合源码执行的时序图,会理解的更加深刻,本节的源码执行流程可以结合图9-2~9-4进行理解
简单地说,杂项维度就是一种包含的数据具有很少可能值的维度。 图(五)- 9-1显示了增加杂项维度表后的数据仓库模式(这里只显示了和销售订单属性相关的表)。 图(五)- 9-2 图(五)- 9-3 图(五)- 9-4 图(五)- 9-5 测试修改后的定期装载 现在使用清单(五)- 9-3里的脚本添加八个销售订单 可以使用清单(五)- 9-4里的分析性查询确认装载正确。该查询分析出检查了信用状态的新用户有多少销售订单。查询结果如图(五)- 9-6所示。 credit_check_flag = 'N' AND a.sales_order_attribute_sk = b.sales_order_attribute_sk) y; 清单(五)- 9-
用数学的方式表示如下: ? 第二个循环对应移动簇中心的步骤,即移动簇中心到该簇的平均值处。更数学的方式表示如下: ? 其中 ? 都是被分配给簇 的样本。 例如根据人的身高和体重划分T恤的大小码,如图9-4所示。 ? 图9-4 K-means for non-separated clusters 9.3 Optimization objective 重新描述在K均值算法中使用的变量: = index of cluster The elbow method : 画出代价J关于簇数K的函数图,J值应该随着K的增加而减小,然后趋于平缓,选择当J开始趋于平衡时的K的取值。如图9-5的(1)所示。 图9-5 代价J关于簇数K的曲线图 注意:随着K的增加J应该总是减少的,否则,一种出错情况可能是K均值陷入了一个糟糕的局部最优。 一些其他的方法参见wikipedia。
画像平台功能只是神策所有服务模块中的一部分,本节根据神策对外提供的技术资料,按照个人理解描述一个类似神策平台的构建过程。 除了使用完整的产品方案,神策还提供可以单独购买使用的服务,表9-4中简要介绍了各服务的主要应用场景。 表9-4 神策数据相关产品及适用场景 产品名称 主要功能点 应用场景 神策分析 报表(配置数据形成报表)概览(数据看板)分析(事件、留存、漏洞)书签智能预警分析 基于全渠道采集的数据,可以实现各类分析功能 ,不同数据的来源不同,但是需要有统一的数据接入层,为了满足不同量级的数据接入需求,接入层需要支持横向扩展;收集到的数据需要按照业务要求经过清洗和整理之后存储起来;为了提供高效的分析功能,数据要配合性能要求写入到合适的查询引擎中 前端应该关注功能的可用性与结果的有用性,用户可以简便高效地使用平台功能并满足自身诉求,页面展示出的各类结果需要明确且易理解。 为了保证系统的可靠性与稳定性,需要提供完善的系统监控能力。
但是会有一个问题,还是会涉及数据导入的问题,虽然代码并不复杂,集合和数组之间提供比较好的互相转换,但是看过源码的同学都知道,list的一个add就是重新new一个数组,导一遍数据,一个add,就是重新new 那么小朱在这里要介绍的方法就是用Array本身提供的方法,创建一个新的数组,长度可以动态指定,封装成工具类还是很好用的哦。 ? ,就是要增加的长度,在本例中我们默认用了5,对于一些不确定参数增加个数的场景也是很适用的,我们可以把新增加的参数的个数动态传递进去,这样可以更方便的使用。 首先,对于Calendare的初始化也比较简单,可以直接通过getTime来获取当前时间,也可以通过格式化之后的Date类型来赋值,最重要的是其中提供了比较丰富的时间计算和显示,拿日期来说,分为四种,一年中的第几天 ,一个月中的第几天,一周中的第几天,一月中的第几周,但是大家注意,有些因为时间统计规则的差异,结果会有不同,比如9-4日应该是周日,输出应为7,但是结果为1,是因为认定周日为第一天,解决这个问题可以用Locale.setDefault
树的叶子结点表示类别标号,即分类属性的取值,对应一个数据对象的子集;树的内部结点为条件属性,它是一个数据对象子集合的标识符;一个内部结点为每个条件属性值或组合的条件属性值构成一个树枝,连接到树的下一层结点 定义9-4 设 S 是有限个样本点的集合,其条件属性 A 划分 S 所得子集为 \{S_1,S_2,\cdots,S_v\} ,则定义 A 划分样本集 S 的信息熵 (简称属性 A 的分类信息熵) 为 E(S,A)=-\sum_{j=1}^{v}\frac{|S_j|}{|S|}\log_2\frac{|S_j|}{|S|}\tag{9-4} 其中 |S_j|/|S| 也称为 自下而上的剪枝算法首先从最底层的内部结点开始,剪去满足一定条件的内部结点,并在生成的新决策树上递归调用这个算法,直到没有可以剪枝的结点为止。 gainRatio(S, A)= gain(S, A|C)/E(S,A)\tag{9-8} 其中, gain(S, A|C) 由公式 (9-7) 计算, E(S,A) 由公式 (9-4) 给出
引言 有时写较多的处理过程反倒让读者没法耐着性子读完,本期推文及以后,关于可视化的推文,我直接明了给出教程和关键步骤解释下,若想详细了解,大家可进群讨论和在文末读者讨论中进行。 colors, ) ax = plt.gca() #设置x刻度为时间形式 x = np.arange(6) xlabel=['8-21','8-28','9- R-ggridges 绘制 借助于R语言丰富且强大的第三方绘图包,在应对不同类型图表时,机会都会有对应的包进行绘制。 上述所涉及到的函数都是基本,在熟悉ggpot2 绘图体系后可以轻松理解。更多有趣的可视化作品,大家可以去官网查看。 04. 总结 本期分别介绍了使用Python 和R 绘制峰峦图的结果,将主要的代码及对用结果展示出来,以便于大家快速阅读。当然,如果对此感兴趣和获取对应的数据,都可以在 读者讨论 或者加群进行交流。