と。

Github: https://github.com/8-u8

26歳になってしまいました

誕生日を祝われるのに慣れていない

今日5月23日は私の誕生日なんですが、同時に今年はジニ係数の考案者であるコッラド・ジニの生誕135周年を迎えます。

私は貧困層出身なので、誕生日を祝われる、プレゼントをもらう、バースデーケーキの存在などは大学に入って初めて体験しました。

どれだけ慣れていないかというと、誕生日プレゼントをくれた人に対して恐怖心を抱く程度には。

Twitterと出会って、今年で10年です。

未だ誰も、私が私自身に送るようのスケジュールしたツイートより早く、誕生日を祝ってくれる人は現れません。

続きを読む

Sports Analyst Meetup Vol. 2に行ってきました

おじゃましました

Sports Analyst Meetupにお邪魔してきました!
昨今話題のスポーツ×データアナリティクスのMeetupで、第1回も参加表明したのですが
やはり昨今話題なだけあって枠が秒で埋まり参加できず……
今回も補欠枠となり万事休すかと思いきや、金曜に繰り上がり2秒で会場に馳せ参じました。

Connpassはここ

spoana.connpass.com

資料はこちら

spoana.connpass.com

続きを読む

数理統計学勉強のためのDiscordサーバを立てました

UbuntuにOSを変えました

Windows使いづらいな!!!!

ふと「kaggleやRとかのコミュニティにはいるけどあまり数理統計学の基礎っぽい話のできるコミュニティに属してないなあ」
とおもったので、せっかくなのでDiscordに鯖を立てました。

有言実行シリーズです。

参加の仕方

① 下をクリック

discord.gg

② メールアドレス認証

とりあえず人間かどうかを確認しています。

③ ようこそ

ルールなど

基本無法地帯です(!?)
ただ、誰かが悲しんだり、つらい思いをしたりしうる発言をしたら追い出すと思います。

もともとはは統計検定1級対策目的でしたが想定以上の規模なので「数理統計学に関わるあらゆる知識の集約」を目的に
みなさんと交流できればいいなあと思っています。

そんなわけで。

九捨十入(年代変数の簡単な作り方)

シチュエーション

  • 卒業論文やお仕事でアンケートをとった.
  • 年齢の選択肢つけるのめんどくさかったので実年齢入れてもらった
  • 年齢と何かのクロス集計をかけたいが,実年齢は整数なのでめんどい
  • 10歳刻みの年代でくくりたいなあ.

関数

こんな感じ.関数にしなくても別にいい.

thFunc <- function(Vec){
  Vec[Vec%%10 != 0] <- Vec[Vec%%10 != 0] %%10 *10  
  return(Vec)
}
thFunc(c(14,15,99,40,56,22))
> [1] 40 50 90 40 60 20

解説

%%演算子は剰余を返す.また,%/%演算子は整数部の商を返す. ここでは10歳刻みの年代がほしいので,10で割った時の剰余を判定し, 剰余が0でない場合は10で割った際の商の10倍を返す. 5歳刻みにしたいなら10としている部分を5とすればよい.

ちなみに

Rにはround関数があり,digits = -1とすると整数部第1位を丸めてくれるが,IEEE式で数値を丸めるため, 例えば25歳は20歳に丸められてしまい,26歳は30歳に丸められてしまう.違う,そうじゃない.

なおpythonでは以下のようにかけば同じような結論を得られる.

 def thFunc(lst):
     for i in range(0, len(lst)):
         if lst[i] % 10 != 0:
             lst[i] = lst[i] // 10 * 10
     return lst

thFunc([34,55,63,55,20,19])
[30, 50, 60, 50, 20, 10]

あるいは

def thFunc(lst): return [lst[i] //10 *10 for i in range(0,len(lst)) if lst[i] % 10 != 0]
thFunc([34,55,63,55,20,19])
[30, 50, 60, 50, 20, 10]

小話でした.

追記

あえて小数にしてからfloor(床関数)使って10倍すれば同じ結果が得られる上短く済むじゃん…… くまきち氏に感謝.

floor(c(14,15,99,40,56,22)/10)*10
[1] 10 10 90 40 50 20

さらに

Atsusy氏「多分コレが一番早いと思います」

ぼく「ミ゜」

> c(14,15,99,40,56,22) %/% 10 * 10
[1] 10 10 90 40 50 20

さすがRおじさん……

結論,別に剰余という情報はいらず,「10の位だけ残す」ことができればいいコトがわかってきた.

シンプルな方がバグもなくていいので,ライブラリ使わないPythonだと

lst = [34,55,63,55,20,19]
[lst[i] //10*10 for i in range(0,len(lst))]

年度末だし年収っぽいのを晒す話

現職については詳しくは言えません

言えるのはこの国の8割を占める典型的なJapanese Traditional Companyであること……くらいですかね……

Twitter有言実行シリーズです.

とりあえず有言実行だけしますが,別に今の会社を非難するつもりはなく

ただ「ヴァターシ1年でこれだけ稼いだんだな」という実感を持ちたいというモチベーションです.

続きを読む

xonshを使ってkaggle APIでkernelにpushする

はじめに

  • kaggle APIはローカルPCのターミナル(コマンドプロンプト)からshellコマンドでkaggleの環境を操作することができる呪文.Pythonで実装されている
  • xonshはPythonで実装されている(?)shell
  • kaggle APIをxonshで動かせばxonsh人口もkaggle API人口も増えて幸せなのではないか?

というわけでkaggle APIをxonshから使ってみましょう. ただ,1から書いていくとアレなので主に

  • xonshからkaggle APIへのアクセス
  • xonshからkaggle APIを通してkernelにPush

の部分を記録します.kaggle APIやxonshの導入については以下を参照してください. また,installationには日本語の記事もありますので参照してください*1

xonsh

xon.sh

日本語による紹介記事

vaaaaaanquish.hatenablog.com

kaggle API

github.com

日本語による紹介記事

www.currypurin.com

前提

  • kaggle APIとxonshは導入できつつある*2
  • 私はwindowsという保守的なOSを使っている上,ほかのOSでの動作検証はしていないので,動作の保証はできません.

*1:多くはないのでこの記事しかないというところもあります.これから流行るものという確信をもってやっていきましょう.

*2:この前提の時点でこの記事の価値は10円ガムよりも安い

続きを読む