This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
三菱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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
こちらのコードは 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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 に移植。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
############################################################# | |
# 最適化アルゴリズム 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): |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
################################################################################## | |
# ノンパラメトリックベイジアンによる正規分布のクラスタリング | |
# 続・わかりやすいパターン認識の第12章の「クラスタリング法1のアルゴリズム」より | |
# Python 3 用 | |
################################################################################## | |
import copy | |
import math | |
import matplotlib.pyplot as plt |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 混合正規分布をEMアルゴリズムを使わずに直接勾配法でパラメータを求める。 | |
# | |
# 【パラメータの事前分布】 | |
# u1, u2: 正規分布 平均=データの平均 標準偏差1000 | |
# s1, s2: 指数分布 θ = 10000 | |
# pi: 正規分布 平均0.5 標準偏差100。ただし、定義域(0~1)から出たら非常に小さな事前確率にする。 | |
# 事前分布があることにより、おかしなパラメータに行かない。 | |
import autograd | |
import autograd.numpy as np |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 混合正規分布を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() |
NewerOlder