Data Scientistを目指すとある学生のblog

Data Scientistを目指している学生のblogです。統計分析や機械学習から最適化、英語などの勉強過程も書いていこうと思います。

plotly 書いていこー

最近 plotly よくみますね。

ですが、日本語の記事が少ないような気がします。

ということで、plotly について勉強ついで書いていこうと思います。

 

えーと,pythonで書きます。

まずインストール!

 

$ pip install plotly

これでいけます。 私は、conda で入れました。なので、

$ conda install plotly

これでいけました。 ついでに、公式ではpipで入れてました! これでインストール終わり!

グラフを作りに行く前に、知っていた方がいいこと!

plotlyでは、web上にグラフを管理するサービスがあります。
アカウントを作成すると使用できます。
アカウントなくても人のを持ってきたりはできるようです(多分、、、)
web上に上がったグラフはfree plan では、公開されています。
公開されたくない場合は、お金を払ってprivateにするか、offlineで使用するかです。
特に、外に出したらまずいデータについては、注意しましょう。

というように、plotlyにはonlineとofflineがあります。

私は、今のところアカウント登録していないので常にofflineです。

といったところで、終わりますがどんなのかけるの?って方は

plot.ly

ここ見にいってみてください^^ 次から書いていきまーす!

jupyter Texの不具合修正

あけましておめでとうございます。

 

最近、jupyter でtexを書くと表示がおかしくなってしまいました。

原因は不明です。。。(texをPCに入れた時なんかしたかな?)

 

こんな感じでした。

f:id:syokoysn:20180122163856p:plain

シグマが縮こまってしまっています。

 

どのようにしたら直るのかググっていたんですよ。

すると、似た感じの不具合を修正している記事を見つけました。

qiita.com

 

記事を見ていただいたらわかるのですが、

簡単にいうとあるべきものがなくて、ないから元のやつ名前変えて残しつつ、新しくちゃんとしたやつ持ってきた

といった感じです。

とりあえずエラーを見て見ました。

f:id:syokoysn:20180122164341p:plain

私もMathJaxの下に不具合があるようです。

それじゃ、上の記事同様にMathJaxを持ってきたらいいかな?

と思い、やってみることにしました。

まず、このMathJaxがどこにあるのか、

私の場合pyenv でanacondaを使っていたので、ここにありました。

~/.pyenv/versions/anaconda3-4.0.0/lib/python3.5/site-packages/notebook/static/components/Mathjax/

 エラー先をみにいったのですが、STIXMathJAx_Size1-Regular っていうのなかったです。

ということで、MathJaxを新しく入れていきましょう。

 

MathJaxのあるところまでいき、

元のMathJax を MathJax_orgと名前を変えて、

gitを使ってMathJaxをクローンして終わりです。

 

入力内容は、上の記事と全く同じなので省略します。

 

やったことは、中身がなかったから中身あるやつに変えたって感じですね。

結果的にこんな感じに表示されるようになりました。

f:id:syokoysn:20180122170701p:plain

シグマくんが堂々としています。

これでモチベーションが下がらなくてすむので嬉しいです。

上の記事を書いてくれた人に感謝です。

 

と、これで修正できたのですが、ターミナルをみてみると他にもいくつか警告が出ていました。

[なんたら~~~~~] 404 GET /なんたら~~~なんたら~

みたいな類の警告です。

これについても同じように、元のgitのレポジトリを見つけて、クローンして〜 、

とやっていたら警告なくなりました。(どこに影響したのかわからないけど。。。)

 

ということで、texの不具合&何かしらの不具合修正完了!

 

 

 

アルゴリズムとは? データ構造とは? (0/100) 〜データ構造編〜

 

はい。

続いて、データ構造( data structure )について書いていきます。

参考資料は、前回の3冊です、

 

 

アルゴリズム図鑑では、

「データの順番や位置関係を決める」

と書かれており。

 

Cによるアルゴリズムでは、

「計算にともなうデータを、コンピュータの記憶部分にどのように組織化して格納するか」

 

アルゴリズムイントロダクション 

「アクセス更新を容易にする目的のために、データを蓄積し組織化する方法」

また、

「どのデータ構造も全てのもう敵に対して満足に働くこはない。いくつかのデータ構造についてその長所と限界を理解することが重要である。」

書かれている。

 

アルゴリズム図鑑の説明は大雑把過ぎてわからないですね。。。

Cによるとイントロダクションの方は、

少し経験があればわかりやすいかなと思います。

 

このデータ構造によって、問題を解くことが困難になったり容易になったりします。

今後、データ構造についても考えていきたいと思います。

アルゴリズムとは? データ構造とは? (0/100) ~アルゴリズム編~

 はい。

少し時間がたってしまいましたが100個書くやつ(以後、100シリーズ)やっていきたいと思います

以前書いた100個書くという内容の初めの初め

 

そもそもアルゴリズムって?

 

データ構造って?

 

ということから入ろうと思います。

 

今回は特に実装することはないので、0番目ということで!

 

 

では、内容に入っていきたいと思います。

 

 

 

 

今回の参考にしたのは、

 

Cによるアルゴリズムとデータ構造

Cによるアルゴリズムとデータ構造

 

 (前使ってたやつ,)

 

アルゴリズム図鑑 絵で見てわかる26のアルゴリズム

アルゴリズム図鑑 絵で見てわかる26のアルゴリズム

 

(図書館にあったやつ) 

 

アルゴリズムイントロダクション 第3版 総合版 (世界標準MIT教科書)

アルゴリズムイントロダクション 第3版 総合版 (世界標準MIT教科書)

 

 (研究室にあったやつ)

 

この3冊です。

 

この3冊+私の考え方で今回は書かせていただきます。

 

 

まず、『アルゴリズム』について、

 

情報系に進んだ人なら、まずこの言葉に出会うことだろうと思います。

アルゴリズムってなに?」

その疑問から、始めていきます。

 

広辞苑では、

① アラビア表記

② 問題を解決する定型的な手法・技法。コンピュータなどで、演算手続きを指示する規則。算法

 

と書いてありました。

 

アルゴリズム図鑑には、

「計算や作業を遂行するための手順のこと。」

 

Cによるアルゴリズムとデータ構造(以下、Cによる と略します)では、

「与えられた問題を解くための、機械的操作からなる有限の手続き」

 

アルゴリズムイントロダクション(以下、イントロダクション と略します)では、

「ある値または値の集合を入力(input)として取り、ある値または値の集合を出力(output)として生成する、明確に定義された計算手続きである。」

 

と書かれています。

また、定義として、Turing machine(チューリングマシン)で計算可能*1であることをアルゴリズムの定義と書いてある場合もありますが、上にあげたアルゴリズムの定義と同等の意味をなしています。

 

 

「C」によると「イントロダクション」の定義が、情報系の人なら知っておくべき考え方ですかね。

 

アルゴリズム図鑑の定義は、初めての人に簡単に雰囲気を教える感じならいいと思います。

 プログラムを組んだことのない人は少しわかりにくい言葉かもしれませんが、

実際に組んでいくと定義の意味がしっくり理解できると思います。

以上、アルゴリズムという言葉の定義についてでした。

 

長くなってしまったので、データ構造は次書きます。

 

*1:計算可能とは、Turing machineを有限ステップ働かせて計算できること

100個くらい、というか最低100個

こんばんは、

 

題名の「100個くらい」というのはですね、

これから100個くらい有名アルゴリズムやデータの分析、データ構造を書いていこうと思いまして。

内容は、sortとか、~~問題と呼ばれる類いの物とか、ニューラルネットの類いのものとかやっていきたいと思います。

簡単なのはC+で書きます(sort etc)そのほか面倒な物と分析系は、Python (or R)で書いていこうと思います。

紹介したいなと思うことは、いくつかのアルゴリズム(もしくは、言語)で書くかもしれません。

 

と考えていました。

 

 

そこで、もし一日1つ書いたとしたら、100日ですよね。

今日から、100日後というのは、3月の23日なんですよね。

(できたらもっと早く終わらせたいな。。)

 

就活始まってますよね。。。

ということで、難しい内容もやっていきますが、簡単なやつもそこそこ入れていきます。

 

あと、データの分析をする際は、誰でも使えるデータを使って行こうと思いますので、参考にしてくれたら嬉しいです。

あと、自分の研究分野の方によった物も扱うと思いますので、面白そうなら見てってください。

 

取り扱う内容はだいたい下の本に載ってるものを扱います。

 

アルゴリズム系とデータ構造系はこのへんを教科書に

 

 京大の茨木先生の本です。

Cによるアルゴリズムとデータ構造

Cによるアルゴリズムとデータ構造

 

 

図書館にあった可愛らしい本です。

 

アルゴリズム図鑑 絵で見てわかる26のアルゴリズム

アルゴリズム図鑑 絵で見てわかる26のアルゴリズム

 

 統計解析、機械学習系はこのあたり。

 

 

Rによる統計解析

Rによる統計解析

 

 

 

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

 

 

詳解 ディープラーニング ~TensorFlow・Kerasによる時系列データ処理~

詳解 ディープラーニング ~TensorFlow・Kerasによる時系列データ処理~

 

 

 

Rによる機械学習 (Programmer's SELECTION)

Rによる機械学習 (Programmer's SELECTION)

 

 

 

この辺りで本の紹介疲れたんで、記事書くごとに参考資料を載せることにします。

 

では! 

 

機械学習あたりの勉強

お久しぶりです。

最近、機械学習あたりに強くなろうと思い、

機械学習についての良さそうな本を手にとってみました。

現在進行形で、ある2冊の本を読み進めています。

 

一応、pythonでコードを書くなら重回帰やロジスティック回帰などは、

書けますが、中身がどのようになっているのかなど、

あやふやにモデルを作っていたなと感じたため今回は、じっくり勉強しています。

 

読む前から良さそうだなと思って、読み始めたのですが、

今のところ、2冊ともすごくいい感じです。

 

一冊目は、これです。

 

詳解 ディープラーニング ~TensorFlow・Kerasによる時系列データ処理~

詳解 ディープラーニング ~TensorFlow・Kerasによる時系列データ処理~

 

まだ途中ですが、いいです!!とても!!

読みやすい !!

そして、説明も多く理解とコードの内容が結びつきます(今のところ..)

そして、TensorFlow,Kerasを実際に使ってくれているので、使い方がわかってくる感じです。

また、分析環境の構築も書いてくれていて親切な感じでした。(たまたま、環境一緒でした。)

ディープラーニングメインですので、機械学習全般を網羅したい方には、おすすめしませんが、単純パーセプトロンを始めとする、ニューラルネットの類は結構さわれます。

おすすめの一冊です。

 

 

2冊目

こちらもおすすめです。

 

 

Rによる機械学習 (Programmer's SELECTION)

Rによる機械学習 (Programmer's SELECTION)

 

 こちらは、上の一冊よりも多くの手法を学べます。

決定木から線形回帰、回帰木、ニューラルネット、サポートベクトルマシン、k平均法、バギングなど本当に多いです。

こちらもまだ途中ですが、Rがまだ得意と言えない私にとっては、丁寧で嬉しい一冊です。

 

これから色々することあるのですが、

とりあえずこの2冊をしっかりこなします。

 

今回は、本2冊の紹介でした。

AP試験(応用情報技術者試験)

就職活動で少しは有利かな、と思って今年は資格を取ることにしました。

気持ち的には、基本情報は絶対に、応用は取りたいなーくらいでした。

 

それで、今日そのAP試験がありまして、(基本情報は春取れた)

なんとなくなんですけど、

落ちたと思います。

午前は結果が出ていたので採点すると、

63/80 と合格ライン(48~ 六割ごえ)を超えていました。

解いている時から、ある程度できてる感触があったので午前はとく話すことないんですけど、午後ですね。

 

受けてみた感想として、5割いってんかな?くらいの感じでした。

 

20日程度しか勉強する期間がなかったので、勉強量が足りないと言われたらおしまいですが、基本情報は一月半で取れたので今回もいけるかなと。

 

それに加えて、

教材の範囲をしっかりできていたし、過去問も解くことができていたので試験前日には

「これはいけるなーー」とかんちがいしていました。

 

実際のところは、

午後の試験で、ネットワークをみた時、「SDN?」と知らない単語と遭遇し、変な汗が出てしまうくらいやられました。

 

ネットワークに一番時間を費やしたのに

 

他の分野もそこそこだったし合格は難しいかなと。。。

 

今回、ダメだったなと思った反省事項は、過去の参考書を基本に勉強をしていたことだと思います。大学の図書館にあった最新の本なのですが、26年度向け、、、、、

つまり三年前の試験向けの参考書です。

 

ドッグイヤーと例えられる技術の分野では、

やはり常に最新の知識が求められているのですね。

 

改めてそう思いました。

 

ついでに基本情報は2年前の教材でいけました。

 

最後に、

勉強にしようした教材とサイトを載せておきますね。

 応用情報はこれの26年度

平成29年度【春期】【秋期】応用情報技術者 合格教本 (情報処理技術者試験)

平成29年度【春期】【秋期】応用情報技術者 合格教本 (情報処理技術者試験)

 

 

 基本情報はこれの27年度、

 を使用していました。

 

ですが一番お世話になったのは、

このサイトですね。

www.ap-siken.com

 

これからは、スキルアップ重視で生活していこうと思います^^

 

明日からも頑張るぞーーー