サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
おみそ汁
sucrose.hatenablog.com
Google Data Studio (データスタジオ) という可視化サービスがベータ版で使えるようになっていたので試してみた 見たい数値を一覧するためのダッシュボード的なものを作るためのサービスなので、いろんな場所からデータを取ってきて一箇所でまとめて確認するのが用途っぽい(今のところ似たようなサービス・ツールの方が機能が多そう データソース データソースとしてGoogle AnalyticsやBigQuery、Google Spreadsheet、MySQLなどを選んでデータを取ってこれる データソースを選んでGUIでグラフやテキストを配置していく データの既存のフィールドに関数を適用した結果の値を使うこともできる 使える関数のリスト 下の画像ではGoogle Analyticsの「ブラウザ」(Chrome, Firefoxなど)と「ブラウザのバージョン」(バージョンの番号)をCONC
scikit-learn(sklearn)の日本語の入門記事があんまりないなーと思って書きました。 どちらかっていうとよく使う機能の紹介的な感じです。 英語が読める方は公式のチュートリアルがおすすめです。 scikit-learnとは? scikit-learnはオープンソースの機械学習ライブラリで、分類や回帰、クラスタリングなどの機能が実装されています。 また様々な評価尺度やクロスバリデーション、パラメータのグリッドサーチなどの痒いところに手が届く機能もあります。 インストール scikit-learnの他にもnumpyとかscipyとかが必要です。 Windows 64 bit版の人は以下のURLに色々なインストーラーがおいてあるのでおすすめ Python Extension Packages for Windows - Christoph Gohlke その他の人は以下のURLを見て
PHPでMersenne Twister法で擬似乱数を生成する関数のmt_rand()にバグがあり出力がおかしい、という話が流れてきておもしろかったので簡単にまとめておく kusanoさんがmt_rand()の実装に9年以上前から1文字違いでバグがあったことを見つけて、数ヶ月後にマージされる(追記: 正確には、PHP版の実装が他と異なっているのは前から知られていたらしい*1 ) PHPに送った1文字修正するプルリクエストがマージされた🎉 mt_rand()の返す値が元のメルセンヌツイスタと異なっていた。https://t.co/Z5WJhHVyNd— kusanoさん@がんばらない (@kusano_k) February 17, 2016 その後、生成される擬似乱数列が変わってしまうので、後方互換性を壊す変更は議論してからmergeすべきということでrevertされるこの前マージされた
研究用にニコニコ動画のコメント約300GBを公開‐ニコニコインフォ 情報学研究データリポジトリ ニコニコ動画コメント等データ 国立情報学研究所のダウンロードサービスでニコ動のデータセットが公開されていたので、とりあえずダウンロードしてみました ダウンロードの手順 以下のページで、名前、メールアドレス、所属を入力すればよいみたいです。 情報学研究データリポジトリ ニコニコ動画コメント等データ 申請 データの形式 行ごとにそれぞれの動画のjsonが書かれたファイルがたくさんあります。 コメントのデータもありますが、ユーザーに関する情報はないみたいです 動画の説明などには<b></b>や<font></font>、<br />などのHTMLタグが含まれていましたので、それらの除去が必要になりそうです タグの頻度 なんか面白いことできないかなーと考えたんですが、何も思い浮かばなかったので、とりあえ
今日は天皇誕生日ですが、以前「あと何回天皇が交代すれば毎日が天皇誕生日になるか(不謹慎)」の期待値を求める記事を書きました 毎日が天皇誕生日になるには何回天皇が交代する必要があるか - 唯物是真 @Scaled_Wurm 祝日と祝日の間に挟まれた日が、国民の休日で休みになるのを考慮していないという指摘を受けたので、今回はその場合の平均回数を求めます さらに、挟まれた日が国民の休日になるというのを考えると、もっとずっと複雑になるな。(考える気はない)http://t.co/AuibRNF969— Hiroshi Manabe (@takeda25) 2014, 4月 30 厳密解をどうやって求めればよいか悩んでいたら「厳密解は諦めてシミュレーションでそれっぽい値を求めればよいのでは?」というアイディアをいただきました。ありがとうございます@Scaled_Wurm ああ、ここでシミュレータと言
Twitterで見かけた以下の記事で紹介されていた論文がおもしろそうだったので読んだ感想と内容のてきとーな紹介(詳しく知りたい人は元論文を呼んでください) マイクロソフトの研究者による、いわゆる A/B テストにおいてメトリックを解釈するときに陥りがちな罠12選。実例がことごとく直感に反していてとても面白かった。 https://t.co/jC9JOsx1uB— Shuhei Takahashi (@nya3jp) 2017年10月11日 内容が間違っている部分があったらコメントなどで教えていただけると嬉しいです 論文 このKDD2017の論文ではABテストの結果を解釈する時に陥りがちな12種類の罠についてMicrosoftの研究者が実例と対策を交えて説明しています Pavel Dmitriev, Somit Gupta, Dong Woo Kim and Garnet Vaz, "A D
そういえば修士論文や発表が終わっていたので報告代わりに書いておきます 役に立つ内容だったりポジティブな内容だったりはしないただの記録なので注意 できるだけマイルドな内容にしたつもりです 一応書いておくと2010年に大学院に修士として入って、2回修士論文を出せずに留年して、今回に至ります。 私がいた研究室はポジティブな結果が出ないとダメ的な雰囲気が強いのですが、結局研究はダメで修士4年目なのでお情けで出させてもらった感じが強いです…… 修士論文以外に論文も書いていないので、研究的にはほとんどアウトプットが出せなかった4年間でした。 精神的につらい感じの研究室生活で何度もやめようかと思いましたが、いろんな人に励ましていただいたり手伝ったりしていただきました 感謝しています、ありがとうございました 先生方とも全然会話できない感じになっていました。 ほとんど何も進んでいない→進んでないから話すこと
jq 前に以下のニコニコ動画のデータセットの記事でも使いましたが、jqコマンドはJSONを変形したり一部を抽出したりするのにとても便利なコマンドです ニコニコ動画のデータセットが公開されたらしい - 唯物是真 @Scaled_Wurm マニュアルを見ると、条件に応じた処理とか最大値を求めるとか意外と複雑な機能も使うことができます jq Manual 軽量JSONパーサー『jq』のドキュメント:『jq Manual』をざっくり日本語訳してみました | Developers.IO また以下のサイトでオンライン上で試せます jq play JSONをCSVに変換 JSONをCSVに直したい時があって使い方を調べたのでメモしておきます 単純な例 まずは単純に以下のようなJSONをCSVに変換します {"key1": 1, "key2": 2} 方法1 - 文字列展開 文字列中の\()の中身は展開さ
そういえばブログには書いていなかったような気もするので改めて書いておくと、大学院を出てニートになった後なんとなく働いています sucrose.hatenablog.com 何社か受けよう的な話があったけど、コミュ力(精神)を消費するのがつらかったので一番早く決まったところで労働しています 自分みたいな無能で精神の弱いコミュ障でもなんとか糊口をしのぐことができていて感謝(?) 仕事はPHPとかJavaScriptとかCSSをいじってWebページを修正したりしてます 他に特筆すべきこととしては、ユーザーの行動のデータを継続的に取るようにしたり可視化とかをやっていましたが一年間やってだいたいネタが尽きてきました 一番下の方にどんな技術・ツールに触ったのか書いたので、よい可視化ツールがあったら教えていただけると嬉しいです 驚いたこと 勤務先はいわゆるWeb系の会社で、働いてみていろいろと驚くことが
前に以下のような記事を書きましたが、大量のテキストではうまくいかなかったので新たに書きました ファイルからランダムにN行取り出す(shufコマンド) - 唯物是真 @Scaled_Wurm 上の記事ではテキストをランダムに\(k\)行取り出したい時"shuf -n k"コマンドでランダムにシャッフルした\(k\)行を取り出していました ところが非常に大きなテキストファイルに対して上のコマンドを実行すると、一度にデータを全部メモリに読み込み始めているのか、すごい勢いでメモリを消費していきました(sort -Rでも) そこでメモリをあまり使わずにランダムに\(k\)行取り出す方法について調べました まず基本的な非復元抽出のアルゴリズムは以下の記事の発展手法とか追記のあたりの話がわかりやすいと思います 非復元抽出の高速かつ実装が簡単な方法を考える - 睡眠不足?! この記事の話も一度全部の要素を
gensimは前に以下の記事でも使ったPython用のトピックモデルなどの機能があるライブラリです。 小説家になろうのランキングをトピックモデルで解析(gensim) - 唯物是真 @Scaled_Wurm 以前紹介した以下の論文でもgensimが使われていました 論文紹介 “Representing Topics Using Images” (NAACL 2013) - 唯物是真 @Scaled_Wurm deep learningで話題になったword2vecの機能も取り入れてたりして面白いライブラリです Radim Řehůřek : Deep learning with word2vec and gensim 入力の作り方がすこしわかりにくいかなぁと思ったので、メモっておきます。 コーパスの作り方 以下の公式の例で説明します この例ではリスト内のそれぞれの要素が1つの文書となります
Pythonで出力したUTF-8のCSVを渡したら「文字化けしてExcelで読めない」と言われて困りました 原因は文字コードがUTF-8の時によく問題になるBOM(バイトオーダーマーク)です バイトオーダーマーク - Wikipedia UTF-8のファイルにはBOMが付いている場合と付いていない場合があります ExcelはBOMが付いていないと正しく読み込んでくれません なので、例えばメモ帳で開いて保存し直すと、BOMが付いてExcelでも開けるようになります 今回の問題とは逆にBOMがついていると動かないこともあって、以前BOMが付いたUTF-8のファイルをChromeに渡したら何故か動かなくて悩みました Google Chrome のユーザースクリプトで名前やバージョン番号が反映されない - 唯物是真 @Scaled_Wurm ちなみにPythonだと文字コードにutf-8ではなくu
qiita.com 上の記事でBigQueryに投げたクエリのログ(Audit Log)がインポートできることを知ったので、会社で使われているBigQueryのアカウントについて毎日クエリの課金額(処理したバイト数)の多いユーザーをSlackに通知してみた ちなみにAudit Logsをインポートする設定方法はこのあたり Analyzing Audit Logs Using BigQuery | BigQuery Documentation | Google Cloud Platform 以下のクエリで計算している クエリ課金の単位のTBがテラバイト\(1000^4\)なのかテビバイト\(1024^4\)なのかよくわからなかったので、とりあえず少なめに見えて人間に優しい(?)\(1024^4\)で1日何ドルかを計算している (追記: 2017-07-01) Audit Logsのテ
小説家になろうというWeb小説投稿サイトがあります。 いわゆるライトノベル的な作品が多いのですが、近年書籍化される作品が多く出ていて注目を集めています。 続々と「小説家になろう」から書籍化作品が登場! - フラン☆Skin はてな支店 小説を読もう! || 小説ランキング[累計]の上位100件を解析して、どんな作品が多いのか調べてみました。 解析手法 トピックモデルというものを用います。 これは文書が何のトピックを含むかを推定してくれるモデルで、他にもトピックの代表的な単語などもわかります。 Pythonでトピックモデルを使えるライブラリの一つであるgensim: Topic modelling for humansを使います。 gensim gensimはLDAやLSIなど複数のトピックモデルを実装しています。 今回はLDA(Latent Dirichlet Allocation)という
社内でABテストとか統計的仮説検定の話題が出ていたので、統計的検定を知らない人向けに「5分でわかる統計的検定」というLTをしようかと思ったけど、まったく5分で終わる気がしなかったのでとりあえずブログにまとめてみる ちなみに社内では統計的検定は数名の人が個人的に趣味で使っている程度 個人的には統計的検定をやることをそんな重要視してないけど(PVとかユーザー数多ければだいたい有意差出るし、数値を見て明らかに差があるような変更でないとあまり意味がないような気がする) 自分は統計やABテストなどにあまり詳しいわけではないので注意 間違いはコメントやTwitterなどで教えていただけると嬉しいです 統計的検定とは 雑にいうと、得られた結果が偶然得られたものどうかを確かめる方法(特定の仮定のもとで) ABテストでは別々のものをユーザーに見せた結果が偶然の差ではなく統計的に意味のある差(有意差)が得られ
Pythonで実装する類似度計算 - Screaming Loud #1283. 共起性の計算法 ↑この辺りの記事を見て、集合とかベクトルの類似度の計算の記事を下書きのまま放置していたことを思い出したので書き上げた。 類似度の計算のコードを書いたのでそれを載せるだけにしようかと思ったのですが、知っている人にしか伝わりそうにないので自然言語処理でよく使う話の概要だけでも書いときます。 導入 自然言語処理の分野では単語の意味を比較するときに、ある単語の周り(文脈)に出てきた単語のベクトル(文脈ベクトル)の類似度を計算することがある。 これは「ある単語の意味はその周囲に出現する単語によって特徴づけられている」という仮説に基づいていて、文脈ベクトルが似ていれば似たような意味、似たような状況で使われる単語が多いということが言えるからである。 Distributional semantics - Wi
PythonのcollectionsモジュールにはdefaultdictやCounterなどの便利なデータ構造があります。 いくつかメモ代わりに紹介しておきます defaultdict 辞書にキーが含まれない場合のデフォルト値を指定できます。 リストをデフォルトで持つ辞書などが作れます。 defaultdictへの引数としては初期値のものを返す関数を与えます from collections import defaultdict d = defaultdict(list) d['Hello'].append('World') 変わった使い方としては以前別の記事でも紹介しましたが単語にIDを割り振るのに便利です 単語などをIDにマッピングする - 唯物是真 @Scaled_Wurm 以下のようなコードを書くと未知の単語が辞書に与えられたら、その単語に新たなIDを振っていくことができます。 w
前にこんなツイートをしたけどもうちょっとちゃんとメモっておく ゆるふわカジュアル勢()なので内容に間違ってる点があったら教えてくださると嬉しいです 勝手なイメージだと、MeCab →一番使われてる 。速い。辞書を弄くるのが簡単。いろいろ移植されてる。Juman→出力が詳しい。代表表記に正規化できる。KNPを使うときはこれ。KyTea→新しくていろいろ更新されてる。読みの推定ができる。部分的タグ付けによるドメイン適応ができる。— 無限猿(id:sucrose)@12月病 (@Scaled_Wurm) October 22, 2014 大雑把に言うと形態素解析では文章を単語+品詞の列に分解する いわゆる学校でならった文法とは違う文法を使っているので注意が必要 ただし形態素解析器によって品詞体系や辞書に載っている単語が異なる 形態素解析器では単語や品詞の列にコストが計算できるようになっていて、そ
QiitaとAdventarにあるアドベントカレンダーについて、個別の記事とカレンダー全体のはてなブックマーク数のランキングを27日の0時ごろに集計した 個別記事上位100件のURLについては軽く目で見て最近の記事でなかったりするURLをフィルタリングしてある(漏れはありそう ↓途中経過は下に sucrose.hatenablog.com ちなみにQiitaは公式のランキングがあります Advent Calendar 2016ランキング - Qiita カレンダーの合計ランキング 以下カレンダーとカレンダーに登録されている記事のはてなブックマークの合計数のランキング 順位 カレンダー名 はてなブックマーク数 1 はてな 4846 2 システムエンジニア 3453 3 LITALICO Engineers 2585 4 クラウドワークス 2393 5 Supership株式会社 1981 6
前に決定木の可視化をしようと思ってやってなかったのでやっておきます 決定木のライブラリは例のごとくscikit-learnを使う pythonの機械学習ライブラリscikit-learnの紹介 - 唯物是真 @Scaled_Wurm 決定木とは 決定木は教師あり学習で使われるモデルで、ルールを木として学習します 例えば身長、体重から性別を予測したい場合、身長が170cm以上で体重60kg以上なら男、みたいなルールを学習します 性能はあまりよくないモデルですが、人間にもわかりやすいルールを出力する(他のモデルと比べれば)という特徴があります 簡単に説明すると、ある変数が一定値以上であるかという条件で分けた時に、データのラベル(性別なら男女)ごとの分布がどちらかに偏るような条件で木を作っていきます 予測するときには、データが条件を満たしているノードをたどって木の一番下の葉ノードまでいって、葉ノ
最近KADOKAWA・DWANGOがカドカワになるというニュースがありました KADOKAWA・DWANGO、10月1日より「カドカワ株式会社」に社名変更…経営統合を内外に強く示すため | Social Game Info KADOKAWAとドワンゴの経営統合を内外に強く示すため、両社の音を組み合わせたという。「カ」:KADOKAWAのKA、「ド」:ドワンゴのド、「カ」:KADOKAWAのKA、「ワ」:ドワンゴのワになる このニュースをみて以下のような2つの問題を考えてみたので、解いてみます 文字列"カドカワドワンゴ"をランダムに並び替えた時、その文字列中に"カドカワ"が連続して含まれる確率を答えよ— 無限猿(id:sucrose)@17月病 (@Scaled_Wurm) 2015, 5月 28 "カドカワドワンゴ"のそれぞれの文字が書かれた8枚のカードがある。 カードをシャッフルして1枚
Pythonで文字列中の変数展開をするときの書式について調べたのでメモ http://docs.python.jp/2/library/string.html#formatstrings 基本的に文字列中の{と}の間にいろいろと指定して、展開したい変数をformat関数に与えるようになっています ちなみにformat関数を使っている時に、{や}の文字を普通に書きたいときには{{や}}のように波カッコを2つ重ねます フィールドの指定 まずどの場所をどの値で置換するかの指定方法を説明します 基本的にはこの機能を覚えておけば十分のはずです 単純な使い方 {}をformat関数に与えた順番に置換する print '{}, {}, {}'.format(1, 2, 3) 1, 2, 3 添字による指定 {}内に添字を書くとformat関数に与えた引数の何番目かを指定できる print '{2}, {
じゃんけんをするときに人数が多いとあいこが増えて、なかなか終わらなかった経験があると思います \(n\)人でじゃんけんした時に、ただ1人の勝者が決まるまでの回数の期待値(平均回数)を計算してみました また大人数でもすぐに勝負がつくゲーマーじゃんけんも取り上げています この記事ではある人がグー・チョキ・パーを出す確率はそれぞれ等しいとします じゃんけん まず結果が知りたい人のために最初にグラフを載せておきます 横軸が人数、縦軸がただ一人の勝者が決まるまでのじゃんけんの平均回数です \(10\)人で約\(24\)回、\(15\)人で約\(159\)回と、人数が増えると回数の期待値が急激に増えていくのがわかると思います 人数 回数の期待値 1 0 2 1.5 3 2.25 4 3.21428571429 5 4.48571428571 6 6.2198156682 7 8.64673579109
最近あんまりパフォーマンス的によくない正規表現を見かけたので、いくつかのパターンについて正規表現をいろんな言語で試してみて実行時間を測ってみた(ついでに最悪計算量についてゆるふわに考えてみた) 実際には正規表現エンジンの実装(NFAやDFAとか?)やバージョン、オプション(?)によると思いますしなんとなくの傾向という感じです やること 以下の正規表現についてパターンマッチされる対象の文字列の長さ\(L\)が増えたときに、1回マッチするか調べる時間がどれぐらい伸びるかを調べます .*a a.*b a.*b.*c a(a|aa)*b 計測方法 以下の言語についてIdeoneで実行してみて実際に測ってみた時間を載せます(括弧内はIdeoneに書かれていたバージョン) Ruby (ruby-2.1) Python (python 2.7.10) PHP (php 5.6.4) Java (sun-
機械学習のデータとして特徴量を作るときの注意点や悩むことなどをメモっておきました。 間違いなどが含まれているかもしれません。 基本的な内容ですので調べればもっと適切なやり方があると思います。 カテゴリカル・データ カテゴリカル・データというのは、いくつかの限られた種類の値をとり、その大小関係に意味が無いものです。 質的データとか名義尺度とか呼ばれることもあります。 例えば都道府県のデータを考えた時に、北海道と沖縄は違う値ですが、その大小関係は定義できません。 (もちろん北海道と沖縄に面積的な大小関係などはありますが、欲しい情報ではないとします) カテゴリカル・データを特徴量にするときにはカテゴリーごとにその特徴であるかどうかの二値にするとよいと言われています 以下に例を示します。それぞれの列がデータごとの特徴量を表していると考えてください 北海道:1 沖縄:0 東京:0 北海道:0 沖縄:
以前集合やベクトルの類似度の記事を書いたんですが、確率分布の類似度には触れていなかったのでついでに書きました ツイート時間分布の類似度を求める 今回はツイート時間ごとの頻度を正規化して、確率分布とみなして類似度を計算してみます 私のアカウント(以下mainと表記)に対して、私のもう一つのアカウント(以下subと表記)+私がリプライを送ってる数が多い(以下friendと表記)上位5人と比較します subがfriendよりも似た結果になることを期待しています 以下にツイート時間の分布(main + sub + friend 5人)を載せました ある程度似ていますが、人によってそこそこ形が違っていて、特に午前中の投稿時間の差は特徴的に見えます またfriend1の一人だけは大きく違った傾向を示しています 以下ではこれらが定量的にどれぐらい異なるのか類似度を計算して比較していきます グラフを描くの
去年書いたスクリプト↓がだいたいそのまま動いたのでアドベントカレンダーのはてなブックマークの合計数のランキングと記事別のランキングを今年も出してみた sucrose.hatenablog.com 全件記事を見たわけではないので変なゴミが混じっているかも 今年はディープラーニングの記事がたくさんはてブを集めていて人気を感じる ↓最終結果も出した はてなブックマーク数が多い2016年のアドベントカレンダーの記事 - 唯物是真 @Scaled_Wurm カレンダーの合計ランキング 順位 カレンダー名 はてなブックマーク数 1 システムエンジニア 3070 2 DeepLearning 1593 3 LITALICO Engineers 1535 4 N高 1504 5 Shell Script 1433 6 Fujitsu 1398 7 転職(その2) 1354 8 トレタ 1222 9 UI
自分がなんとなくBigQueryのクエリを書いていてハマった罠について列挙しておきます。 ドキュメントをちゃんと読めば書いてあったりするのですが、普段はそこまで細かく見てなかったりするんですよね……。 BigQueryのカレンダー | Advent Calendar 2023 - Qiita の16日目の記事です。 CAST(value AS INT64) は切り捨てではない 他のプログラミング言語などをやっているとなんとなく整数型にキャストすると切り捨てのような気がしてしまいますがBigQueryは違います。 四捨五入的な挙動になります。 SELECT CAST(1.5 AS INT64) -- => 2 Returns the closest integer value. Halfway cases such as 1.5 or -0.5 round away from zero. h
“Representing Topics Using Images", Nikolaos Aletras and Mark Stevenson 研究室で論文紹介したので適当に以下に資料を貼っておく。 論文を読んだ後で気づいたけど、NAACL 2013はまだやっていないので、preprintバージョン(?)っぽい。 何故か研究室での論文紹介は、資料が英語で口頭説明が日本語なので、以下では日本語の説明を加えておいた。 英語が間違っている部分があると思いますが、コメントで指摘なりスルーするなりしてください。 スライドはこうした方がいいとかもあったらぜひ。 後から読むと説明の流れが変かな?ってところもありますね。 論文中の図表ってどの程度載せていいんでしょうか……? やっぱりまったく載せないほうがいいんですかね。 論文紹介 概要 自然言語処理ではトピックモデルというものがよく用いられている。 トピ
次のページ
このページを最初にブックマークしてみませんか?
『唯物是真 @Scaled_Wurm』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く