2018年07月18日

電車内で読まれてる書籍の分析2018

分析の結果分かった事は
新しい本ほど読まれやすく、古くなるほど読まれる期待値は減衰して行く...
任意の書籍が、読まれる観測数の期待値が一番大きいのは、発売日当日であるという事です。
しかし、このような表現をすると、逆に自明に感じてしまいますね

2017年の記録はこちらです 



電車内でスマホいじってる人の構成比など分析2018/7 
の方でも書籍に分類される出版物の数を分析していますが、その存在比は、このくらいだと思います。

0.067923353 文庫
0.025081788 単行本
0.024926001 教科書問題集
0.017915563 漫画
0.006387288 雑誌
0.005764138 漫画雑誌

当然ですが文庫本が一番多いです。
雑誌の様な定期刊行物は、読んでる人がたくさんいそうに思えて、あまり居ません。

電車内でも、電子書籍端末や、スマートフォンで電子書籍を読む人もいますが、 紙の本を読む人の方が圧倒的に多いです






今回の観測期間は  2016/06/30 〜 2017/06/29 で、この間は786冊しか記録出来ていませんでした。
その内22/786ぐらいが図書館図書でした

読まれてる本で多かった著者は、このぐらいです

12 東野圭吾
9 池井戸潤
8 辻村深月
7 佐伯泰英
7 伊坂幸太郎
7 尾田栄一郎
13 長月達平
7 川原礫
続きを読む

2018年07月17日

AndroidでLibSVMの実行方法




Androidで機械学習モデルを学習させたいと前々から思っているんですが、各種フレームワークではそんな事が出来そうな触れ込みであっても、多分現在(2018/7)でも出来てないと思います。
とりあえずSVMのようにシンプルなモデルでは何とかそういう事が出来るので、 AndroidでSVMを学習出来るAndroidLibSVMの使い方です。


まず、これはデータ形式とデータの与え方がやや特殊だと思ったのですが、これはLIBSVM で与える形と同じです。

学習データは初期状態ではassetsの3ファイル
heart_scale heart_scale_predict heart_scale_train
にあります。 このファイルの形式で与えます。
10 1:0.11020066030402687 2:0.06277354983540957 3:0.026578113230440407 4:0.15293952050727205 5:0.5220346309476823...
11 1:0.09199927271560455 2:0.029046795653292292 3:0.005175900528444909 4:0.03486644286290013 5:0.7427294447498135...
...

行の先頭がクラス番号で、 特徴量番号:特徴量 を列挙して、delimiterは半角スペース
このような形式です。

クラス番号は区別出来る数字でありさえすれば良いのではないかと思います。必ずしも連続で全てが埋まっていなければならない訳では、おそらく無いです。

また、SVMは基本的には二値分類ですが、マルチクラスは、こういうデータ形式で与えるということです。
LIBSVM Data: Classification (Multi-class)
学習データもこのように変換しておく必要があります



元のソースコードではストレージのパーミッションが必要ですが、LibSVMの実行に関してはこれは余り本質的ではないです。
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
androidlibsvm-release.aarのダウンロード...なども、全然気にしなくてよいです。





そしてlibsvmの実行はネイティブコードを呼び出しているだけで、
学習と、 predictは コマンドを直接実行させる形になっています。

ソースコードではこうなっています。
svm.train(svmTrainOptions + dataTrainPath + modelPath);
svmTrainOptions , dataTrainPath などに空白が入っているので、コマンドとしての連続した文字列として与えるという事が分かると思います。

テストデータに対する予測の方がこうです。
svm.predict(dataPredictPath + modelPath + outputPath);
与えるファイル形式は学習の時と同じです。
結果が、outputPathのファイルから読み出すしかないようなのですが...他の方法は無いのでしょうか?
ネイティブコードの方を新たに書くべきなのでしょうか?
出力されたファイルの中身ですが、クラス番号が1行一つずつ改行で出力されています。

さて、元のソースコードではオプションを与えていませんが、そのままだと多クラス分類は上手くいかないんじゃないかと思います。
String svmTrainOptions = "-t 2 ";
デフォルトでは  -s svm_type が 0 という事になっていて、0のC-SVCで問題ないと言う事であるはずなのですが
しかし、実際にやってみると、1クラスだけしか出力しないモデルになる事しかありませんでした。なぜなのでしょうか? 

String svmTrainOptions = "-s 1 -t 2";
複数クラスをちゃんと出力出来るモデルに出来るオプションはこう nu-SVCでした。


モデルはmodelPathのファイルに出力されていて、これはAndroid的には通常のファイルと同じ扱いです。
保存したモデルを後で使う時はsvm.predictでそれを指定するだけです。


データファイルですがAndroidだとメモリの問題で余り大きな学習データは与えられないので、やはり学習させるべきではない設計になっているのでしょうか?






tak_tak0 at 06:54コメント(0)サーバ この記事をクリップ!

2018年07月10日

電車内でスマホいじってる人の構成比など分析2018/7

train_densya_smartphone



性別と年代別の数字もそうですが、弄ってない人は何をしてるのか等の数字も分析してあります。

因みに全体での傾向はもう何年もほとんど変わっていません。それは、前回2017/12の方を見てください。

他に、どんなアプリを使っているのか、とか
その他のどんな特定のメディアを消費しているのか、などは、別に記録してます。 電車内の人はどんなアプリを使ってるのか?



今回観測期間は 2017年12月27日 から2018年7月3日までで、記録した人数は延べ 6421 人です。
まず全体の数です。


男性 女性  
小学生以下中学生高校生若年中年老年 小学生以下中学生高校生若年中年老年母集団 
5639110521711547694218621112198母集団 
0083316125385フィーチャーフォン 
26539838745219346628410iPhone 
3292565398404213330814Android 
1645910463419228614文庫本 
37284930196271単行本 
26127134040940教科書問題集 
00627200020漫画雑誌 
111214263510160コミック 
0058252002172新聞 
1493842733301182901284イヤフォン 
2262100601939951254829会話 
34161542720131飲料 
2414204810食物 
13066169470255710019睡眠 

下は、上を母集団で割った値です。
男性 女性  
小学生以下中学生高校生若年中年老年 小学生以下中学生高校生若年中年老年 
0.000000.000000.007600.019290.029250.014490.004750.005800.034170.02525フューチャーフォン 
0.035710.166240.378330.226180.082270.028990.458430.540600.255400.05051iphone 
0.053570.074170.243350.315020.153560.000000.099760.154290.276980.07071Android 
0.035710.156010.025670.007600.007310.000000.095010.010440.003600.00000教科書問題集 
0.017860.163680.056080.060780.115170.057970.045130.025520.077340.07071文庫 
0.053570.017900.026620.028640.054840.014490.021380.006960.024280.00505単行本 
0.000000.000000.005700.015780.003660.000000.000000.000000.001800.00000漫画雑誌 
0.017860.028130.019960.024550.010970.043480.011880.011600.014390.00000漫画 
0.000000.000000.004750.047930.095060.000000.000000.002320.015290.01010新聞 
0.017860.125320.365020.159560.060330.000000.280290.336430.115110.02020イヤフォン 
0.392860.158570.095060.035070.034730.565220.225650.145010.043170.14646会話 
0.053570.010230.015210.008770.007310.028990.016630.023200.011690.00505飲料 
0.035710.010230.000950.002340.003660.000000.009500.009280.000900.00000食物 
0.017860.076730.062740.098770.085920.000000.059380.066130.089930.09596睡眠 

その他のデバイスの数です。


男性 女性  
小学生以下中学生高校生若年中年老年 小学生以下中学生高校生若年中年老年母集団 
0002000000blackberry 
0101000000PSP 
7215031100DS 
0036000100PSvita 
006165021131携帯音楽プレイヤ 
02518500162Android tablet 
0214267012111iPad 
0010000000windows tablet 
00715300010windows note 
0023000120Macbook 
0018100030電子書籍端末 
0046100101スマートウォッチ 



年代が上がるほどiPhoneよりAndroidの選好率が上がるとか、若年女性だと半数以上がiPhone使うだとか全体の傾向は変わらないのですが、少数デバイスの方を見ると以前との変化はあります。
Blackberryがほとんど無くなってしまいました。何年か前はもう少し見ていたんですが
PSやDSなども以前より少なくなっていると思います
。何が理由なのでしょうか?



全体でのグラフはこうなってます。このように、変化しなくなってきています。

smartphone2018

続きを読む

サイト内検索
にほんブログ村 科学ブログへ
にほんブログ村
adsense
Archives
amazon
blogchart
QRコード
QRコード
Recent Comments
o