Skip to content

Instantly share code, notes, and snippets.

@yukoba
yukoba / main.py
Last active January 21, 2021 19:45
新型コロナウイルスの感染者数の予測
"""
Copyright (C) 2021 by Yu Kobayashi
Permission to use, copy, modify, and/or distribute this software for any purpose
with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
@yukoba
yukoba / mufg_fx_download.py
Last active March 2, 2019 14:13
三菱UFJ銀行公表の対顧客外国為替相場のダウンロード
"""
三菱UFJ銀行公表の対顧客外国為替相場を http://www.murc-kawasesouba.jp/fx/ からダウンロードします。
conda install lxml が必要です。
"""
from datetime import date
from time import sleep
from typing import Optional
import pandas as pd
@yukoba
yukoba / zei.py
Last active July 2, 2018 14:23
# 2018年度用
def calc_kojin(income, age):
# 基礎控除
kisokoujyo_kuni = 38
kisokoujyo_chihou = 33
# 給与所得控除 https://www.nta.go.jp/m/taxanswer/1410.htm
if income <= 180:
kyuyo_shotoku_koujyo = max(65, income * 0.4)
@yukoba
yukoba / speck-rounds-inside.c
Created July 22, 2017 14:26
SpeckでROUNDSが外か中か
/*
こちらのコードは ROUNDS がループの内側。
https://en.wikipedia.org/wiki/Speck_(cipher) とほぼ同じ。
自動ベクトル化はできないみたいです。
*/
#define ROR(x, r) ((x >> r) | (x << (64 - r)))
#define ROL(x, r) ((x << r) | (x >> (64 - r)))
#define R(x, y, k) (x = ROR(x, 8), x += y, x ^= k, y = ROL(y, 3), y ^= x)
#define ROUNDS 32
@yukoba
yukoba / TensorFloat.scala
Last active June 11, 2017 12:56
Tensor library. Only + is implemented. Broadcasting is supported.
package jp.yukoba.tensor
import java.util
import com.github.fommil.netlib.BLAS
import org.scalatest.FunSuite
class TensorFloat(val data: Array[Float], val shape: Array[Int], val strides: Array[Int]) {
assert(data.length > 0)
@yukoba
yukoba / Cmaes.scala
Last active February 10, 2017 16:21
最適化アルゴリズムCMA-ESの実装。MATLAB版をScalaに移植。
package jp.yukoba
import breeze.linalg.eigSym.EigSym
import breeze.linalg.{*, Axis, DenseMatrix, DenseVector, argsort, diag, eigSym, max, min, norm, sum}
import breeze.numerics.{log, pow, sqrt}
import breeze.stats.distributions.Gaussian
/**
* 最適化アルゴリズム CMA-ES の実装。
* https://www.lri.fr/~hansen/purecmaes.m を Scala に移植。
@yukoba
yukoba / cmaes.py
Last active January 25, 2017 04:01
最適化アルゴリズムCMA-ESの実装。MATLAB版をPython 3に移植。
#############################################################
# 最適化アルゴリズム CMA-ES の実装。
# https://www.lri.fr/~hansen/purecmaes.m を Python 3 に移植。
# https://arxiv.org/abs/1604.00772 も参考にしています。
#############################################################
import numpy as np
def minimize(feval, N=12, xmean=None, sigma=1.0, stopfitness=1e-10, stopeval=None):
@yukoba
yukoba / nonparametric_bayesian_clustering.py
Last active June 29, 2017 06:59
ノンパラメトリックベイジアンによる正規分布のクラスタリング。続・わかりやすいパターン認識の第12章の「クラスタリング法1のアルゴリズム」より。
##################################################################################
# ノンパラメトリックベイジアンによる正規分布のクラスタリング
# 続・わかりやすいパターン認識の第12章の「クラスタリング法1のアルゴリズム」より
# Python 3 用
##################################################################################
import copy
import math
import matplotlib.pyplot as plt
@yukoba
yukoba / mixture_normal_distribution2.py
Last active November 1, 2017 09:59
混合正規分布をEMアルゴリズムを使わずに直接勾配法でパラメータを求めるが、パラメータに事前分布をつけて正しく収束させる
# 混合正規分布をEMアルゴリズムを使わずに直接勾配法でパラメータを求める。
#
# 【パラメータの事前分布】
# u1, u2: 正規分布 平均=データの平均 標準偏差1000
# s1, s2: 指数分布 θ = 10000
# pi: 正規分布 平均0.5 標準偏差100。ただし、定義域(0~1)から出たら非常に小さな事前確率にする。
# 事前分布があることにより、おかしなパラメータに行かない。
import autograd
import autograd.numpy as np
@yukoba
yukoba / mixture_normal_distribution1.py
Last active January 9, 2017 16:25
混合正規分布をEMアルゴリズムを使わずに直接勾配法でパラメータを求める
# 混合正規分布をEMアルゴリズムを使わずに直接勾配法でパラメータを求める
import autograd
import autograd.numpy as np
epsilon = 1e-8
data = np.array([-0.39, 0.12, 0.94, 1.67, 1.76, 2.44, 3.72, 4.28, 4.92, 5.53,
0.06, 0.48, 1.01, 1.68, 1.80, 3.25, 4.12, 4.60, 5.28, 6.22])
data_var = data.var()