首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iScience|不确定性量化问题:我们可以相信AI在药物发现中的应用吗?

表1 不确定性量化方法的总结 基于相似性的方法 基于相似性的方法基本上采用这样的概念:即如果测试样本与训练样本过于相似,则相应的预测可能不可靠。...具体来说,在贝叶斯系统中,总不确定性可以根据不同的来源分为偶然不确定性和认识论不确定性。前者是不可约和固有数据噪声的结果,后者是由训练集提供的知识不足引起的。...因此,预测的不确定性在总预测不确定性中的比例可以用来估计一个模型是否达到了可能的MAA。...提高模型准确性和稳健性 到目前为止,我们引入的大多数策略都将UQ视为模型建立工作流程中的独立模块。一个重要原因是,我们希望在模型准确性和可解释性之间做出权衡。...总体而言,在UQ方面,我们还需要走很长的路,才能让人工智能在药物开发的不同阶段的决策中发挥更重要的作用。 参考资料 Yu J, Wang D, Zheng M.

2.4K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    我以为我对Mysql索引很了解,直到我被阿里面试官22连击

    A:我们在数据库中创建了一些索引(我现在非常后悔我当时说了这句话) 这里可以看到,阿里的面试官并不会像有一些公司一样拿着题库一道一道的问,而是会根据面试者做过的事情以及面试过程中的一些内容进行展开。...A:(突然觉得这道题有点难,但是我还是凭借着自己的知识储备简单的回答上一些)因为Hash索引底层是哈希表,哈希表是一种以key-value存储数据的结构,所以多个数据在存储关系上是完全没有任何顺序关系的...(后来我才知道,原来这个过程叫做回表)是所有情况都是这样的吗?非主键索引一定会查询多次吗? A:(额、这个问题我回答的不好,后来我自己查资料才知道,通过覆盖索引也可以只查询一次) 覆盖索引?...A:用过呀,我们有对一些表中创建过联合索引 Q:那你们在创建联合索引的时候,需要做联合索引多个字段之间顺序你们是如何选择的呢? A:我们把识别度最高的字段放到最前面 Q:为什么这么做呢?...Q:你们创建的那么多索引,到底有没有生效,或者说你们的SQL语句有没有使用索引查询你们有统计过吗?

    1.1K10

    面试被问各种锁怎么办?

    使用它时需要显示的声明吗? 嗯,通常我不需要显示的使用这把锁,当我们对数据库表进行CRUD操作时MYSQL会自动给这个表加上元数据锁,并且这把锁会和所有企图改变表结构的SQL互斥。...MYSQL也会将我们的SQL放在一个单独的事务执行。 想了解这个知识点可以看这篇:全网最牛X的两阶段串讲 你了解间隙锁吗?什么是间隙锁?...可以执行如下SQL会发现,SQL被阻塞住了,因为间隙被锁住了! insert into z select 6,4; 嗯,说的还不错!我们在聊一聊Next-Key-Lock吧! 你有了解吗?...不信你可以按下面的顺序做个实验 如果我们的SQL是: select * from z where a = 5 for update; 会怎么样呢?...好,我们继续!你了解意向锁吗? 嗯,了解一点! 我们知道,在一个事务中对某个表进行增、删除、改操作时,会对被操作的行添加行锁。

    70320

    【MySQL】七种SQL优化方式 你知道几条

    1.插入数据 1.1insert 如果我们需要一次性往数据库表中插入多条记录,可以从以下三个方面进行优化。...在 load 时,主键顺序插入性能高于乱序插入 2.主键优化 在上一小节,我们提到,主键顺序插入的性能是要高于乱序插入的。...数据组织方式 在 InnoDB 存储引擎中,表数据都是根据主键顺序组织存放的,这种存储方式的表称为索引组织表 (index organized table IOT) 。...此时再插入 id 为 50 的记录,我们来看看会发生什么现象 会再次开启一个页,写入新的页中吗? 不会。因为,索引结构的叶子节点是有顺序的。按照顺序,应该存储在 47 之后。...知识小贴士: MERGE_THRESHOLD :合并页的阈值,可以自己设置,在创建表或者创建索引时指定。 4).

    42440

    来聊一聊MySQL的索引吧

    下面给出两个查询语句并分析索引执行情况 通过分析第二条SQL,我们得出结论,对于走辅助索引的查询,必然会二次查询主键索引树(当然有特殊情况,下面讲) ,一张表只有一个主键索引,但是可以建立很多的辅助索引...覆盖索引 那么所有使用辅助索引的SQL查询语句都必须两次回表吗?...举个例子: 分析下面这条sql的索引调用情况:首先是匹配 name like'小%',可以走右侧辅助索引树,找到 id=2的记录,然后顺序向后扫描满足 age=16的记录,并不能继续利用联合索引中age...,那还有必要回表吗?...解决:可以通过重建索引的方式,删除之前的旧索引,并重新创建这个索引,因为数据已经在表中,因此重建索引的过程会将表中的数据按顺序插入,使得页面结构重新恢复紧凑(当然具体重建索引的方案需要结合更多的因素去分析

    38930

    MySQL索引知识结构

    主键索引:建立在主键上的索引被称为主键索引,一张数据表只能有一个主键索引,索引列值不允许有空值,通常在创建表时一起创建。...如何更好创建和使用索引我们知道索引在时间和空间上都是有代价的,所以了解如何更好的创建和使用索引是我们使用好索引的前提,一般会考虑以下因素:只为用于搜索、排序、分组的列创建索引索引列中不重复值得个数在总记录条数中的占比很大时...在MySQL的 InnoDB存储引擎中,主键索引是聚簇索引,主键索引的B+树的叶子节点按照顺序存储了主键值及数据,如果主键索引是自增ID,只需要按顺序往后排列即可,因为每次插入一条新记录,都是追加操作,...2:改为有序的数字主键生成策略就可以,如美团Leaf/推特的分布式自增ID算法SnowFlake ( ☝ᖗ乛◡乛ᖘ☝ )防止索引失效创建了索引我们就一定能用上吗?...我们在查询SQL前加explain,就可以看到如下执行计划分析:explain 执行计划字段意思type列就表明了这个访问方法是何种类型,是较为重要的一个指标,常见扫描类型的执行效率从低到高的顺序和出现的场景

    70421

    100道MySQL数据库经典面试题解析(收藏版)

    聚集索引,索引中键值的逻辑顺序决定了表中相应行的物理顺序;非聚集索引,索引中索引的逻辑顺序与磁盘上行的物理存储顺序不同。...这篇文章非常不错,大家去看一下吧:一条SQL语句在MySQL中如何执行的 27. InnoDB引擎中的索引策略,了解过吗?...第二范式:在第一范式的基础上,分主键列完全依赖于主键,而不能是依赖于主键的一部分。 第三范式:在满足第二范式的基础上,表中的非主键只依赖于主键,而不依赖于其他非主键。...为什么需要注意组合索引中的顺序? 组合索引,用户可以在多个列上建立索引,这种索引叫做组合索引。 因为InnoDB引擎中的索引策略的最左原则,所以需要注意组合索引中的顺序。 54. 什么是数据库事务?...主键:数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null)。 外键:在一个表中存在的另一个表的主键称此表的外键。。

    2.6K20

    博文看了这么多,终于理解了MySQL索引

    使用索引避免全表扫描,提高检索效率,使用索引后就维护了一颗B+树,B+树是为磁盘或者其他直接存取辅助设备设计的一种平衡查找树,在B+树中,所有记录节点都是按键值的大小顺序存放在同一层的叶子结点,各叶子结点通过指针进行连接...其实是单链表结构,一个叶子结点是一个页,它是InnoDB管理存储空间的基本单位,一个页的大小是16KB,也就是最多能保证16KB的连续存储空间,各个数据页可以组成一个双向链表,而每个数据页中的记录会按照主键值从小到大的顺序组成一个单向链表...聚集索引是根据主键创建的一棵B+树,聚集索引的叶子结点不仅保存该列的键值信息,还保存了这一行数据记录的其他值信息,是一个完整的数据记录,聚集索引决定了表的物理排列顺序,一个表只能有一个聚集索引。   ...这种按照非主键列建立的B+树需要一次回表操作才可以定位到完整的用户记录,所以这种B+树也被称为二级索引(英文名secondary index),或者辅助索引。   为什么我们还需要一次回表呢?...你看看,你需要查找的数据字段和条件筛选的字段,在一颗B+树就可以完成,不需要回表。   也千万要注意,联合索引时创建的仅仅是一个B+树,如果单独分开创建2个索引才是2个B+树.

    26620

    MySQL优化的底层逻辑

    goods表中的这些数据在B+Tree中的逻辑结构如下图可以看到在非叶子节点上只存放了主键列的值,而叶子节点存放了主键对应的整行数据,这种索引又叫「聚簇索引」 也叫「主键索引」 。...这里为goods_no、goods_name列创建一个普通索引后,表中的数据在这个索引中逻辑结构如下图可以看到在普通索引中每个非叶子节点的键值存放的是索引列的数据,而叶子节点不仅存放了索引列的数据,还存放了对应的主键值...'sql1中使用了goods_no、goods_name创建的普通索引。...因为要查询的goods_price在普通索引没有找到,所以在拿到主键后会去主键索引中再查找一次,这个过程叫做「回表」,也就是说要查两个 B+Tree 才能查到数据(如下图)。...总结所以我们不需要背索引失效场景以及索引使用的注意事项,只要知道数据在B+Tree索引中是怎样存储的、优化器是怎么选择索引的,这些那些的原则、注意事项还需要背吗?还是那句话,知其然知其所以然。

    47931

    《深入浅出SQL》问答录

    像ALTER TABLE MODIFY COLUMN proj_desc AFTER con_name;这样做可以吗? 创建表后你就无法真正的改变列的顺序了。...最多只能在指定位置添加新列,然后删除旧列,但是这样会失去旧列中的所有数据。 如果我已经创建了主键,然后又意外的想改用另一列呢?可以只移除主键的设置而不改变其中的数据吗? A:可以,而且很简单。...A:外键为NULL,表示在父表中没有相符的主键。但我们可以确认外键包含有意义、已经存储在父表中的值,请通过约束实现。 不能单纯的使用另一张表的键,称之为外键,而不加上约束吗?...如果我们试着删除主键表中的行或者是改变主键值,而这个主键是其他表的外键约束时,你就会收到错误警告。 所以上面说的那种,我就不能删除了是吗? A:还是可以的,先移除外键行即可。...创建别名真的很简单,在查询软件中首次使用原始列名的地方后接一个AS并设定要采用的别名,告诉软件现在开始要以另一个名称引用my_contacs表的profession列,这样可以让查询更容易被我们理解。

    2.9K50

    这篇3万字的Java后端面试总结,面试官看了瑟瑟发抖(四)

    (a, b, c, d)顺序的索引,d是用不到索引的,如果建立(a, b, d, c)索引就都会用上,其中a,b,d的顺序可以任意调整。...2、= 和 in 可以乱序,比如 a = 1 and b = 2 and c = 3 建立(a, b, c)索引可以任意顺序,MySQL的查询优化器会优化索引可以识别的形式。...,有问题的话,远程接口也需要优化 [ ] 方法中的代码有没有问题,比如,循环里面查库了,一个数据多次查库了,全表查询了 [x] sql有没有用到索引 [ ] 上面的检查都没问题,考虑使用缓存(读多写少用缓存...,写多读少用队列) [ ] 还可考虑数据库的主从,读写分离 ❝问:MySQL如果没有定义主键,会创建主键索引吗。...有哪几种存储引擎❞ #存储引擎 Innodb MyIsam 如果表没有创建主键,如果有唯一键,会用唯一键字段创建主键 如果没有唯一键,则用一个隐式的rowid创建主键索引 ❝问:MySQL回表❞ 普通索引的叶子节点保存的主键的值

    78320

    MySQL面试高频100问(工程师方向)

    为什么需要注意联合索引中的顺序? MySQL可以使用多个字段同时建立一个索引,叫做联合索引.在联合索引中,如果想要命中索引,需要按照建立索引时的字段顺序挨个使用,否则无法命中索引....因为在InnoDB存储引擎中,主键索引是作为聚簇索引存在的,也就是说,主键索引的B+树叶子节点上存储了主键索引以及全部的数据(按照顺序),如果主键索引是自增ID,那么只需要不断向后排列即可,如果是UUID...如果对语句的优化已经无法进行,可以考虑表中的数据量是否太大,如果是的话可以进行横向或者纵向的分表. 6. 上面提到横向分表和纵向分表,可以分别举一个适合他们的例子吗?...横向分表是按行分表.假设我们有一张用户表,主键是自增ID且同时是用户的ID.数据量较大,有1亿多条,那么此时放在一张表里的查询效果就不太理想.我们可以根据主键ID进行分表,无论是按尾号分,或者按ID的区间分都是可以的....我们可以将上面的表分为两张.id-摘要,id-内容.当用户点击详情,那主键再来取一次内容即可.而增加的存储量只是很小的主键字段.代价很小.

    57420

    写给工程师的 MySQL 面试高频 100 问!

    MySQL可以使用多个字段同时建立一个索引,叫做联合索引.在联合索引中,如果想要命中索引,需要按照建立索引时的字段顺序挨个使用,否则无法命中索引....因此在建立联合索引的时候应该注意索引列的顺序,一般情况下,将查询需求频繁或者字段选择性高的列放在前面.此外可以根据特例的查询或者表结构进行单独的调整. 8. 创建的索引有没有被使用到?...因为在InnoDB存储引擎中,主键索引是作为聚簇索引存在的 也就是说,主键索引的B+树叶子节点上存储了主键索引以及全部的数据(按照顺序) 如果主键索引是自增ID,那么只需要不断向后排列即可,如果是UUID...如果对语句的优化已经无法进行,可以考虑表中的数据量是否太大,如果是的话可以进行横向或者纵向的分表. 6. 上面提到横向分表和纵向分表,可以分别举一个适合他们的例子吗?...我们可以根据主键ID进行分表,无论是按尾号分,或者按ID的区间分都是可以的. 假设按照尾号0-99分为100个表,那么每张表中的数据就仅有100w.这时的查询效率无疑是可以满足要求的.

    56920

    逻辑删除还是物理删除

    有个共识InnoDB引擎的数据表记录一旦超过2000万,它的读写性能就很差,我们用物理删除能缩小表的体积,提升读写性能,这挺好的,原则上也是这么一个道理,但是物理删除数据的代价你了解吗?...具体的执行时这样的: 平时我们数据库在执行SQL语句的时候是这样的,这些操作记录在binlog日志里面,恢复数据的时候,你们编写程序提取binlog日志里面的内容然后逐条分析,看看是那一条sql语句导致的误删除...那我们再来看id>1000这个顺序,因为主键是按照顺序排序的,索引数据库可以很快的定位到id=1000这样的记录,查询的速度是非常快的,后续的查询也是做的这么个二叉树的查找,所以用主键去做分页查询的条件...当然了,在一些必须要物理删除的情形下,还是有折中的加速分页查询的方法 什么样的数据不适合物理删除 核心业务表的数据不建议做物理删除,因为物理删除后,真的就只能停机恢复数据,这个代价真的非常大,反之我们可以对需要删除的记录做状态上的变更...,这种问题问的非常的好,这是童鞋是认真思考了,这个问题可以很优雅的解决,那就是再创建一张数据表历史表,这个表专门用来保存无效的数据,并且这个表还可以使用mongodb数据库,因为逻辑删除的数据重要性并不是那么高

    1.4K30

    Mysql面试一百问

    为什么需要注意联合索引中的顺序? MySQL可以使用多个字段同时建立一个索引,叫做联合索引.在联合索引中,如果想要命中索引,需要按照建立索引时的字段顺序挨个使用,否则无法命中索引....因为在InnoDB存储引擎中,主键索引是作为聚簇索引存在的,也就是说,主键索引的B+树叶子节点上存储了主键索引以及全部的数据(按照顺序),如果主键索引是自增ID,那么只需要不断向后排列即可,如果是UUID...如果对语句的优化已经无法进行,可以考虑表中的数据量是否太大,如果是的话可以进行横向或者纵向的分表. 6. 上面提到横向分表和纵向分表,可以分别举一个适合他们的例子吗?...横向分表是按行分表.假设我们有一张用户表,主键是自增ID且同时是用户的ID.数据量较大,有1亿多条,那么此时放在一张表里的查询效果就不太理想.我们可以根据主键ID进行分表,无论是按尾号分,或者按ID的区间分都是可以的....我们可以将上面的表分为两张.id-摘要,id-内容.当用户点击详情,那主键再来取一次内容即可.而增加的存储量只是很小的主键字段.代价很小.

    80830

    MySQL索引详解及演进过程以及延申出面试题(别再死记硬背了,跟着我推演一遍吧)

    3.3回表、覆盖索引、索引下推 3.4延申几个面试题: 3.5二级索引树的总结 4主键索引与二级索引的区别 1索引的概念 1.1定义   索引在关系型数据库中,是一种单独的、物理的对数据库表中的一列或者多列值进行排序的一种存储结构...索引的作用相当于图书的目录,可以根据目录重点页码快速找到所需要的内容,数据库使用索引以找到特定值,然后顺着指针找到包含该值的行,这样可以是对应于表的SQL语句执行得更快,可快速访问数据库表中的特定信息。...全文(Fulltext):针对比较大的数据,比如我们存放是文章,课文,邮件,等等,有可能一个字段就需要几kb,如果要解决like查询在全文匹配的时候效率低下的问题,可以创建全文索引。...让我们总结一下: 聚集索引(聚簇索引):   主键索引树也叫聚集索引或者是聚簇索引,在InnoDB中一张表只有一个聚集索引树,如果一张表创建了主键索引,那么这个主键索引就是聚集索引,我们是根据聚集索引树的键值...,决定数据行的物理存储顺序,我们的聚集索引会对表中的所有列进行排序存储,索引即数据,数据即索引,指的就是我们的主键索引树啦。

    72720

    MySQL 高频面试题,都在这了

    为什么需要注意联合索引中的顺序? MySQL可以使用多个字段同时建立一个索引,叫做联合索引.在联合索引中,如果想要命中索引,需要按照建立索引时的字段顺序挨个使用,否则无法命中索引....因为在InnoDB存储引擎中,主键索引是作为聚簇索引存在的,也就是说,主键索引的B+树叶子节点上存储了主键索引以及全部的数据(按照顺序),如果主键索引是自增ID,那么只需要不断向后排列即可,如果是UUID...如果对语句的优化已经无法进行,可以考虑表中的数据量是否太大,如果是的话可以进行横向或者纵向的分表. 6. 上面提到横向分表和纵向分表,可以分别举一个适合他们的例子吗?...横向分表是按行分表.假设我们有一张用户表,主键是自增ID且同时是用户的ID.数据量较大,有1亿多条,那么此时放在一张表里的查询效果就不太理想.我们可以根据主键ID进行分表,无论是按尾号分,或者按ID的区间分都是可以的....我们可以将上面的表分为两张.id-摘要,id-内容.当用户点击详情,那主键再来取一次内容即可.而增加的存储量只是很小的主键字段.代价很小.

    92771

    MySQL 面试高频一百问

    MySQL 可以使用多个字段同时建立一个索引,叫做联合索引。在联合索引中,如果想要命中索引,需要按照建立索引时的字段顺序挨个使用,否则无法命中索引。...因此在建立联合索引的时候应该注意索引列的顺序,一般情况下,将查询需求频繁或者字段选择性高的列放在前面。此外可以根据特例的查询或者表结构进行单独的调整。 「创建的索引有没有被使用到?...因为在 InnoDB 存储引擎中,主键索引是作为聚簇索引存在的,也就是说,主键索引的B+树叶子节点上存储了主键索引以及全部的数据(按照顺序),如果主键索引是自增ID,那么只需要不断向后排列即可,如果是UUID...如果对语句的优化已经无法进行,可以考虑表中的数据量是否太大,如果是的话可以进行横向或者纵向的分表. 「上面提到横向分表和纵向分表,可以分别举一个适合他们的例子吗?」...横向分表是按行分表.假设我们有一张用户表,主键是自增ID且同时是用户的ID.数据量较大,有1亿多条,那么此时放在一张表里的查询效果就不太理想.我们可以根据主键ID进行分表,无论是按尾号分,或者按ID的区间分都是可以的

    89730

    MySQL面试高频一百问

    为什么需要注意联合索引中的顺序? MySQL可以使用多个字段同时建立一个索引,叫做联合索引.在联合索引中,如果想要命中索引,需要按照建立索引时的字段顺序挨个使用,否则无法命中索引....因为在InnoDB存储引擎中,主键索引是作为聚簇索引存在的,也就是说,主键索引的B+树叶子节点上存储了主键索引以及全部的数据(按照顺序),如果主键索引是自增ID,那么只需要不断向后排列即可,如果是UUID...如果对语句的优化已经无法进行,可以考虑表中的数据量是否太大,如果是的话可以进行横向或者纵向的分表. 6. 上面提到横向分表和纵向分表,可以分别举一个适合他们的例子吗?...横向分表是按行分表.假设我们有一张用户表,主键是自增ID且同时是用户的ID.数据量较大,有1亿多条,那么此时放在一张表里的查询效果就不太理想.我们可以根据主键ID进行分表,无论是按尾号分,或者按ID的区间分都是可以的....我们可以将上面的表分为两张.id-摘要,id-内容.当用户点击详情,那主键再来取一次内容即可.而增加的存储量只是很小的主键字段.代价很小.

    80520
    领券