本地数据存储 | wsztrush 

作者:JerryXia | 发表于 , 阅读 (0)
最近在考虑如何做算法的优化计算,有两个地方比较头疼:
耗时内存现在的做法是一股脑把所有的东西丢到内存,做起来简单,但是一个任务开跑400MB+的内存就没了,有点慌。并且,读取这400MB+的数据耗时也相当可观,如果能将数据放在本地,在执行任务的时候就地取材,应该也能省不少。
Chronicle同时支持堆外和持久化。
用法&特点在创建的时候如果是create则用堆外内存,如果是createPersistedTo(file)则能持久化。
123456789101112131415public class TestMain {    @Test    public void test() throws Exception {        ChronicleMap<Integer, String> chronicleMap = ChronicleMap                .of(Integer.class, String.class)                .name("test-map")                .averageValue("123123...阅读全文

 逻辑回归 | wsztrush 

作者:JerryXia | 发表于 , 阅读 (0)
虽然名字是“回归”,但Logistic Regression要解决的却是分类问题。
比如在求解二分类问题时,对于$x$分别求条件概率:
$$\begin{align}P(Y=1|X) & = \frac{e^{w·x}}{1+e^{w·x}} \\P(Y=0|X) & = \frac{1}{1+e^{w·x}}\end{align}$$
事件的几率$p/(1-p)$:
$$$$
模型是什么样的?如何训练?为什么使用这种函数?可以通过概率的解释来解决问题极大似然法假设连续$X$满足Logistic Distribution,则分布概率和密度函数分别为:
$$\begin{align}F(x) &= \frac{1}{1+e^{-(x-\mu)/\gamma}} \\f(x) &= F’(x) = \frac{e^{-(x-\mu)/\gamma}}{\gamma(1+e^{-(x-\mu)/\gamma})^2}\end{align}$$
其中$\mu$为位置参数、$\gamma$为形状参数,如下图:

性质有:
中心对称中心变化快、两端变化小参考http://www...阅读全文

 背包问题 | wsztrush 

作者:JerryXia | 发表于 , 阅读 (0)

背包问题是一类组合优化的NP问题:
给定一组物品,每个物品有一定的重量和价值,在一定的限制内,我们如何选择才能使总价值最高?
不同限制的解法也不相同。
0-1背包问题描述:
有$N$种物品,重量为$weight[i]$、价值为$value[i]$,现有背包承重$total$,每种物品最多拿一个,怎样拿总价值最大?
假设每种物品的数量为$count[i]$,于是有:
$$\begin{align}\max \quad & \sum count[i] · value[i] \\st \quad & \sum count[i] · weight[i] \leqslant total \\& count[i] \in { 0, 1}\end{align}$$
当$total$不是很大的时候,打表$tab[i]$为重量为$i$时的最大价值,依次考虑物品$j$,有:
$$tab[i+weight[j]] = max (tab[i+weight[j]], tab[i] + value[j])$$
完全背包问题描述:
有$N$种物品,重量为$weight[i]$、价值为$val...阅读全文