と。

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

数理統計学勉強のための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円ガムよりも安い

続きを読む

Data Driven Meetup #5に行ってきました


今回も視聴者参加

でした.しかも仕事がおして遅刻して. 資料等はこちらから

d3m.connpass.com

LTとかで報告したいモチベーションはあるのですが, 事業会社ではなく,自分たちでプロダクト開発しているわけでもないので,うーん,というかんじです. 無理やり探すか,LTできるネタを公開できる場所に移るか……

続きを読む

白金鉱業Vol.6に行ってきました.

今回初参加

資料等は以下のconpassサイトから

brainpad-meetup.connpass.com

参加理由

私はTwitterが実家なのですが,定期的にハッシュタグ「#白金鉱業」が流れてきてとても盛り上がっているのを見るようになりました.

「鉱業」とあったので,最初はそういう業界の盛り上がりかと思っていたのですが,それにしてはデータ界隈が盛り上がっているので不思議に思い,行ってくるか,と思い参加表明した次第です.

内容

資料とかは上記のConpassを参照していただきつつ.

今回はロボット開発,医療データ分析,アウトプットの技術という3つの題目でした.

ロボット事業における機械学習エンジニアという仕事について

「家族型ロボット」の開発に携わるAlejandro Gonzalez氏によるお話でした.

lovot.life

限られたボディに多くのセンサーを設け,生命感にあふれるロボットを開発する上での 機械学習エンジニアの立ち位置とスキルセットというお話でした.

職業柄ハードウェアのセンサーからデータを取り出して解析して学習して……というようなことはやらないこともあり,とても新鮮でした.

限られたマシンスペックを有効に使うために,機械学習に限らず,ルールベースでのアルゴリズムの実装や信号が正しく取れているか,ノイズ補正,リアクションの優先度など,データを使ってロボットを生き物のように制御するための努力が徹底されているなあ,と思いました.

個人的には「あえて間違えるのも『かわいい』」というところで,そのために精度志向ではないモデルを構築するなどしているというのが,来てるな,未来という感じがしました.

技術アウトプットを支える技術

皆さんおなじみupura氏のお話です.スライドタイトルが支える技術シリーズだったのに気づいたのは会終了後でした.ごめんて.

ブログやkaggler-jaや各種勉強会でアウトプットを続けるupura氏の,アウトプットし続けるコツやアイデアの貯め方,時間,モチベーションの維持の仕方など,非常にためになりました.

影響を受けすぎて連日ブログ投稿をするくらいには非常にためになりました

インプットとアウトプット,やる気と時間という4つの変数がいかに連関しているか,という視点から,アウトプット駆動のインプット,インプット駆動のアウトプットの話については「あー私完全にアウトプット駆動だなあ~」とか言いながら聴いていました.締切がないとやる気が起きない.怠惰な人間……

イデアややりたいことをTodoistというツールで管理することで,眼の前のことに集中するというのはよいライフハックでした.昨日からGoogle Keepを使っています.

管理できれば何でも良いとのことなので,とりあえず頭の中にあるいろいろをここに詰め込んでいく最中です.

医療xDeep Learningの課題と展望について

PFNの菅原洋平さんによる医療分野での機械学習の応用事例のお話でした.

医療分野も専門ではなく,深層学習(とりわけ画像認識)は完全にキャッチアップできていないので,細かい議論についてはあまり理解できていません……

とはいえ,医療分野ではデータによって分野の融合や連携が進んでいるという話,X線写真やMRI写真などから病気かどうかを判別するというタスクに対して,深層学習の手法はたしかに有効であるが,正解かどうかを判別するためのラベル付けがかなり難しいという課題,属人化した情報の処理など,課題も少なくないというお話でした.

特に興味深かったのは「ブラックボックス性の強い深層学習と,診断の透明性や説明責任とのコンフリクト」でした.

言われてみればなるほど,という感じで,深層学習による判別の根拠の出力などの技術も取り入れていく必要があるようです.

ともあれ

参加者の方も質疑が活発で,これはいいイベントを見つけたぞ……という気持ちです.

とても人気のイベントなので,次行けるかわかりませんが,行きます.

TokyoR#76に行ってきました

理論と実装のバランスがいい回

でした.

応用セッションもLTもなかなか活気があり,面白かったです.

今回は資料の多くが以下からアクセスできます.

tokyor.connpass.com

今回特に面白かったのはkato_kohakuさんの機械学習モデルの横断的な比較評価についての応用セッションと,moratoriamuo271さんのLDAを使ったRecommendation Engineの実装のLTでした.

モデルを跨いでデータを見たい

kato_kohakuさんの比較評価では,この著書をベースにした機械学習モデルの解釈について統合的に検討できるRパッケージの紹介とその実装,可視化に至るまでの内容でした.「スライドを作りすぎた」と本人もおっしゃっていましたがその密度・熱量,ともに高かったです.

個人的には学生時代にゲーム理論をかじった*1こともあり,そこで出てくるShapley value機械学習のモデル評価指標として使われていること,使われるに至った発想に驚いてました.

予測が得られる過程をゲームと捉えるってなんなんだ(敬意)*2

社会科学分野で使われていた評価指標にGini Coefficientsがありますが,こちらも決定木系のモデルでの重要度指標として応用されているので,これからもどんどんこういうのが出てくるのかなあと楽しみにしています.

トピックモデル ~1週間の献立を考える~

moratoriamuo271さんのLTでは,Latent Dirichlet Allocationを用いたトピックモデルによって,バランスの取れた料理の献立をリコメンドするという内容でした.

ユニグラム→混合ユニグラム→トピックモデルという文書生成過程モデルの変遷を丁寧に図解していて,とてもわかり易かったです.

仕事でLDAを実装したときは,文書ではなく「ファジイな分類」という部分に注目して,一時期話題になったファジイクラスタリングの実装方法の一つとして扱ったので,懐かしいという気持ちもありました.

私もLTをしましたが,その話はまた別で記事を書きます.

理由は単純で,理論的に詳しい話をLTではできなかったので,その部分を厚くしたEditionを今インプット中なので.

*1:ナッシュ均衡で挫折しかけたのはいい思い出です.

*2:その後論文にあたったのは秘密