1月14日の学び

Kaggle実行環境の整理

  • PC以降に伴い基本的に全てDockerに統一とする。
  • ローカル環境のData以下のファイルをDockerにマウントする
  • Dockerめっちゃ便利。技術の進化の恩恵を受けている気がする!!!
docker run -d -p 8888:8888 -v /Users/mofuneko/SoftwareDevelopment/Docker/Jupyter/Data:/home/jovyan/work  --name jupyter jupyter/datascience-notebook start-notebook.sh --NotebookApp.password='sha1:498022a0e569:8d7b52f956aee890c7ecbca9427c975de02c3370'

1月9日の学び

とりあえず機械学習を進めるなら以下3つを進めていく方針で。

機械学習の手法

分類

  • ラベルを学習してラベルを予測するのが目的
  • タイタニック号で「生存」「死亡」の2つなど

回帰

  • 数値を予測するのが目的

クラスタリング

  • データ群をいくつかのまとまりに分けてデータの構造を発見するのが目的

次元削除

  • 複数次元のデータから重要な要因を発見するのが目的

1月4日の学び

最近はGithubに直接Haskell関連は記載するようになった。

結合法則

  • 集合Sに二項演算○が定義されているとき、(a ○ b) ○ c = a ○ (b ○ c ) がSの任意の元a, b, cに対して成り立てばこの演算は結合的(結合法則を満たす)であるという。
  • 加算や乗算は結合的。

左結合・右結合

  • 演算子にはまず優先度があり優先度が高い演算から実施される
  • 優先度が等しい演算子が複数ある場合は、右結合・左結合に従って演算が実施される

左結合の例

同じ優先度の演算子に対して左から計算する演算子を左結合と呼ぶ

  • 減算
  • 加算
1 - 2 - 3 = (1 - 2) - 3
1 + 2 + 3 = (1 + 2) + 3

右結合の例

同じ優先度の演算子に対して右から計算する演算子を右結合と呼ぶ

a = b = c ⇒ a = (b = c)

12月26日/27日の学び

プログラミングHaskellのほうが断然わかりやすい。すごしずつHaskellの文法が見えてきた感じ。

用語整理

  • 型とはお互いに関連する値の集合
  • Haskellではすべての式は型を持つ
  • Bool型もChar型もInt型も全てお互いに関連する値の集合
  • リスト型もタプル型も全てお互いに関連する値の集合

関数型

  • 関数型も型の一種
  • 関数型はある型の引数を他の型の結果に変換する

多相型

  • 1つ以上の型変数を含む型1つ以上の型変数を含む型をもつ式は多相的と呼ばれる
  • lengthは[a]->Intなので多相的

クラス制約

  • 型変数がどの型クラスのインスタンスなのかを制約する
  • クラス制約を利用することでNumクラスのインスタンスである型変数aなどを指定できる

多重定義型

  • 1つ以上のクラス制約を持つ型は多重定義型と呼ばれる

参考サイト

型クラス - ウォークスルー Haskell takafumi-s.hatenablog.com

12月22日(型コンストラクタ)

値コンストラクタと型コンストラクタの違いがよくわからない。どちらも新しい型を返すのは共通で、何を引数にとるのかが異なるのか?

型コンストラクタ:型を引数にとって新しい型を返す