油猴+JS代码创建DEAP网页按钮

DEAP

DEAP (Data Exploration and Analysis Portal)是ABCD提供的数据探索和分析网站,允许用户对ABCD数据进行下载和统计分析(需要NDA凭证登录)。在这里可以看到最新release的行为和ROI水平的指标。让人印象深刻的地方是使用DEAP可以快速(0.2s以内)从上万个文件中检索出所需要的数据。

比如 MID任务中Reward anticipation large vs. neural Contrast的beta值,将需要的数据加入购物车即可下载。

689b66e6b37914711ad6377c357fbb02.png

但是目前DEAP存在以下两个影响用户体验的地方:

1)无法将数据一次性将所有检索出来的内容加入购物车,必须一个一个地点。

2)清空购物车时,如果不在清除缓存的话,即使在购物车加入新的数据,仍然会下载之前添加的数据。但是这个功能隐藏在一个很遥远的页面中。

c83b9558f5124596bcfa6ecb890ac109.png

油猴

相信很多人听说过油猴(Tampermonkey),可以理解为一个用户脚本管理器。它主要依靠各大社区编写的扩展脚本(JavaScript代码)运行在浏览器上,来改变被访问网页的功能,提升网页浏览体验。所以可以考虑在DEAP的页面上加入自制的JS代码,实现:

  1. 添加按钮

  2. 一键添加购物车

  3. 清空购物车

1.添加HTML 按钮

e385345a7b13171559616fd11b5a21cf.png

参考模板

https://stackoverflow.com/questions/6480082/add-a-javascript-button-using-greasemonkey-or-tampermonkey

2.一键添加购物车

77db9e19236293ddf73d8a6b0ddbeba1.png

原理就是根据ClassName找到所有Add to Chart的按钮并点击。这里可以通过查看网页元素的方法查看按钮的属性。

df4317b1cc9c6ff858b866991d7da6fa.png


3.清空购物车

原理就是清空缓存和刷新页面

af2285c0ab9af2a2c13e24de961739b2.png

三部分内容搞明白之后就是将按钮所执行的功能替换成所需功能,并调整按钮的位置和外观即可。即使不用DEAP,第一部分的框架完全可以运用到其他网站实现某些功能。

5017ad8eee1127b97ab78816518e19ca.png

在油猴JS代码前写 debugger; 可以进入代码调试模式。还有一个调试代码的地方就是网页查看元素页面的console,在这里可以看到报错的信息,也可以直接在这里运行JS的代码。

2a00b0455d7f8b4a62adbbe015b67751.png

初识油猴还是在几年前,那个时候需要尽快预约一个提交签证申请的时间,写了一个简单的JS脚本不停刷新可预约时间,结果账号直接被封了72个小时780b12eed394ab13d73f8c4c20467efe.png,还好解封后很快就预约到了最近的时间57ebef39f5703d3af97361e616fd27bb.png

c4afe31bfdf362814320db8faee5d294.png

DEAP (Distributed Evolutionary Algorithms in Python) 是一个用于构建和实验遗传算法(GA)和其他进化计算方法的Python库。它专注于提供灵活且易于使用的接口,让你能够快速构建和原型化进化计算应用。 在DEAP中,微分熵(differential entropy)通常用于评估个体(如解或种群成员)的多样性或信息内容。微分熵是一个统计量,它衡量了随机变量的概率分布接近均匀分布的程度。在特征提取中,这可能用于评估适应度函数中的个体适应性。 下面是一个简单的DEAP示例,展示了如何使用微分熵作为特征的一部分,这里我们假设你有一个名为`individual`的列表,其中包含代表解决方案的向量: ```python from deap import base, creator, tools import numpy as np import math # 假设creator.Individual是你的解决方案类型 creator.create("FitnessMin", base.Fitness, weights=(-1.0,)) creator.create("Individual", list, fitness=creator.FitnessMin) def compute_entropy(vector): probabilities = np.array(vector) / sum(vector) return -np.sum(probabilities * np.log(probabilities)) def feature_extractor(individual): # 计算每个特征的熵 feature_values = np.array(individual) feature_entropies = [compute_entropy(feature_values[i]) for i in range(len(feature_values))] # 将熵组合成一个元组作为特征 return tuple(feature_entropies), individual.fitness.values toolbox = base.Toolbox() toolbox.register("attr_float", np.random.uniform, 0, 1) toolbox.register("individual", tools.initRepeat, creator.Individual, toolbox.attr_float, n=len(individuals)) toolbox.register("population", tools.initRepeat, list, toolbox.individual) # 初始化一个种群 population = toolbox.population(n=pop_size) # 使用自定义的特征提取器 feature_toolbox = base.Toolbox() feature_toolbox.register("evaluate", feature_extractor) # 进行微分熵特征评估并更新适应度 for ind in population: feature_toolbox.evaluate(ind) ind.fitness.values = ind # 假设特征熵是第一个元素 # 此后的遗传操作如选择、交叉、变异会基于这些特征熵 # ... # 提取特征的部分只执行一次,因为适应度已经包含特征信息 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值