DataFrameの表示でIndexを省くには 

PandasでDataFrame を表示すると、Defaultでは、
indexを含む表示になるのだが・・

# csvファイルを読み込んでデータフレームに展開
df = pd.read_csv('dataset/physical_measurement.csv')
print(df)
  Name  Height  Weight
0   佐藤     172      53
1   田中     160      50
2   鈴木     165      58
3  長谷川     160      65

“print(df.to_string(index=False))” で、Indexを省略することができた。
これは、便利

# csvファイルを読み込んでデータフレームに展開
df = pd.read_csv('dataset/physical_measurement.csv')
print(df.to_string(index=False))
Name  Height  Weight
  佐藤     172      53
  田中     160      50
  鈴木     165      58
 長谷川     160      65

元ネタ:https://stackoverflow.com/questions/24644656/how-to-print-pandas-dataframe-without-index

カテゴリー: python | タグ: , | コメントする

DeepLearning の入門が学習可能なサイト(SIGNATE)

実践形式で学ぶAI / データサイエンス講座

というのが売りの、signate というサイトを見つけた。

受講できるコースには、実践的なコースがいくつかあり、
実際のデータを扱って、練習した人にはうってつけのコースであるように感じた。

上記のcourceをクリックしてみたところ、
以下のプランとお支払い情報のページへJumpしてしまった。

無料で受講できるCourseには限りがあるようだけど、PyQの練習が終わったら、受講を検討してみたい。

カテゴリー: python, 機械学習 | コメントする

WordPressにCodeSnippetを埋め込むには・・

Pythonでサンプルコードを使って理解した関数の実行例等を後で見返したいと思うことがよくあるが、WordPressのblogでCode Snippetを埋め込もうとすると、期待通りの表示をしてくれなくて困っている。

最初、GitHubのgistサービスを試してみたところ、

↑みたいな感じで、Snippetを貼り付けることはできるけど、
github のgist ページを見ると、階層化されていないようなので、snippet の管理が難しそう。

ちょっとしたSnippetをたくさん作って、管理したい場合は、
githubの方が管理がしやすいのかもしれない。

googleで、”github embedded selected code” とかで
検索していくと、takblog さんの以下のページがヒットした。

やっぱり、”https://gist-it.appspot.com”を使うのが、手っ取り早いのでしょうかね。

githubで管理されているソースコードをサイトに埋め込む

こんな感じで貼り付けることができました。

Footerを最小にした場合は、以下の通り。

カテゴリー: 未分類 | タグ: , | コメントする

WordPressのブログで数式を書く。

WordPressのJetPackプラグインで手軽に数式を書く

結論から書くと、↑のページを真似ることで数式を表示することができた。

WordPressのPlug-inで、”JetPack” はすでにinstall していたので、
あとは、設定 > 執筆 > LaTex マークアップ言語を使って方程式や数式を入力
をON

そして、記事の中で

と書くだけでした。

\displaystyle\frac{1}{N(1-N\frac{N}{N_\infty})}

カテゴリー: 備忘録, 未分類 | タグ: | コメントする

ディープラーニング学習メモ

最近ディープラーニングの勉強を開始したが、Aidemyで提供している、ディープラーニング基礎 のコースや、キカガクのディープラーニングの基礎が、無料で理解しやすいように思えた。
コースの中で触れられる専門用語で慣れない部分が多々あるので、まとめておきたい。

Kerasと高水準API

  • 汎化精度(新規データに対する精度)
    • 学習に使用していないテストデータを使用してモデルの評価 を行います。このときの精度のこと。
    • 汎化精度の計算には evaluateメソッド を使用
      python score = model.evaluate(X_test, y_test, verbose=1)
    • X_test は評価用 (テスト) の入力データ、 y_test は教師データです。evaluateメソッドで取得し た損失関数の値と正解率は、 score に格納されます。
    • なお、テストデータは汎化精度の計算のためのもので、学習には使用しません。

エポック
– 学習の回数を エポック数という。
–  エポック数は多く設定すれば、モデルの精度が上がり続けるというものではない
– 適切なエポック数を設定しなかった場合、途中から精度が伸びなくなり、それだけでなく学習を繰り返すことで損失関数を最小化させようとして過学習を引き起こしてしまう可能性があります。

そのため、適切なエポック数を設定し、タイミング良く 学習を打ち切る ことも重要なのです。

  • ディープラーニングは、ニューラルネットワークと同義。
    層: 合計4層以上のものをディープラーニング(深層ニューラルネット/多層パーセプトロン)
    – 畳み込みニューラルネット
    – 回帰結合ニューラルネット

活性化関数phi

ニューラルネットワークでは各層において、線形変換に続いて非線形変換を施し、層を積み重ねて作られるニューラルネットワーク全体としても非線形性を持つことができるようにしている。この非線形変換を行う関数のこと。

  • シグモイド関数
  • 勾配消失減少により、学習が進行しなくなる問題が発生しやすくなる
    sigmoind(x)=\displaystyle\frac{1}{1+e^{-x}}
  • ReLU (Rectified Linear Unit)関数
    • シグモイド関数の勾配消失を回避するためによく使われる。
  • ソフトマックス関数
    • 主に分類で使用される活性化関数
    • すべてのニューロンの出力の合計を1に変換する関数
    • \displaystyle{\alpha(u)=\frac{exp(u)}{\sum_{m=1}^{M}exp(u_m)}}
  • 訓練では、重みが自動で計算される
    • 重みw はランダムに設定されるが、学習をして出された推論結果と
      正解ラベルを比較し、その誤差を小さくすることが機械学習の技術

損失関数

学習時に出力データと教師データとの差を評価する関数を 損失関数(誤差関数)という。

例:二乗誤差、クロスエントロピー誤差

また、損失関数の微分の計算を効率的にするために誤差逆伝播法という手法が使われます。この手法では、出力データと教師データの差を 最小化 するように各層の 重みを更新 します。

平均二乗誤差

平均二乗誤差は連続値の評価を得意とするため、 主に回帰モデルの誤差関数 として使われます。

\displaystyle{E=\frac{1}{N}\sum_{i=1}^{N}(t_i-y_i)^2}

クロスエントロピー誤差

クロスエントロピー誤差は、 分類の評価に特化 しているため、主に 分類モデルの誤差関数 として使われます。

\displaystyle{E=\sum_{i=1}^{N}(-t_ilogy_i-(1-t_i)log(1-y_i))}

一般的には以下の式が使用されることが多い

\displaystyle{E=-\sum_{i=1}^{N}t_ilogy_i}

そうすることによって、ラベルが1以外の項はすべて0になるため、実質的に正解ラベルの誤差のみを計算していることになります。

学習率

学習率とは、 各層の重みを一度にどの程度変更するかを決めるハイパーパラメータ 。
(https://aidemy.net/courses/5090/exercises/HkMP93IoLlM)

最適化関数

  • 学習率、エポック数、過去の重みの更新量など をどのように重みの更新に反映するかを定めるために使用する

ミニバッチ学習 (https://aidemy.net/courses/5090/exercises/BkXPcnIoLxz

  • バッチサイズ : モデルに一度に入力するデータの数

 ハイパーパラメータ のひとつです。
一度に複数のデータを渡した場合、モデルはデータごとに損失と損失関数の 勾配 を計算し、それぞれのデータの勾配の平均値をもとに1度だけ重みの更新をします。

このように、 複数のデータ で 重みの更新を行うことで 偏ったデータの影響を減らし 、並列計算を行うことで 計算時間を短縮 することもできます。
しかし一方で、大きな重みの更新が発生しにくくなり、 一部のデータに最適化されてしまい、全体のデータへの最適化が行われなくなる状態(局所解)から抜け出せなくなる可能性 もあります。

それを回避するためには、イレギュラーなデータが多い時には バッチサイズを大きくする、少ないときには バッチサイズを小さくする といったようそれを回避するためには、イレギュラーなデータが多い時には バッチサイズを大きくする、少ないときには バッチサイズを小さくする といったように、バッチサイズを調整します。に、バッチサイズを調整します。

  • バッチサイズ:
    • 1 に設定する学習法: オンライン学習(確率的勾配降下法)
    • 全データ数設定する学習法: バッチ学習(最急降下法)
    • オンラインとバッチ学習の中間: ミニバッチ学習法

反復学習
一般的にディープランニングでは反復学習を行い、同じ訓練データで学習を繰り返します
エポック数は多く設定すれば、モデルの精度が上がり続けるというものではありません。適切なエポック数を設定しなかった場合、途中から精度が伸びなくなり、それだけでなく学習を繰り返すことで損失関数を最小化させようとして過学習を引き起こしてしまう可能性があります。
そのため、適切なエポック数を設定し、タイミング良く 学習を打ち切る ことも重要なのです。

  • ハイパーパラメータ
    • ニューラルネットワークモデルには、ネットワークを構成する際に調整が必要となるハイパーパラメータと呼ばれるものがいくつか存在します。
    • ハイパーパラメータは数多く存在し、適切に設定しないと正しく学習が行われません。そこで、新規モデル作成時には最適なハイパーパラメータを設計する必要があります。
  • 隠れ層の多さ
    • 隠れ層の数が多い場合は、重みの調整の難易度が上がって 学習の進行が遅く なったり、ユニット数が多い場合は、重要度の低い特徴量を抽出して 過学習 (汎化性能が低い状態)を起こしやすくなる。 したがって、ただやみくもに数を増やすのではなく、学習に適切な数を設定することが必要。
  • ドロップアウト
    • ドロップアウトは、 学習データに対する過学習を防ぎ、モデルの精度をあげるための手法の一つ 。
    • ドロップアウトではランダムにニューロンを削除(0で上書き)しながら、学習を繰り返します。それによって、ニューラルネットワークは特定のニューロンに依存することなく、より 汎用的な特徴を学習するようになる。
  • 活性化関数
    • 活性化関数とは、全結合層などの後に適用する関数で、ニューロンの発火に相当するもの。
    • 全結合層では、入力を線形変換して出力するが、 活性化関数を用いることで非線形性をもたせることができる。
    • 活性化関数を使用しないと、下図のように一本の直線で分離できず(線形分離不可能)、データが分類できなくなる。
    • 活性化関数によって非線形性をもたせることで、 線形分離不可能なモデルでも、適切に学習が進めば必ず分類できるようになる 。
    • なお、活性化関数にもいくつかの種類があるので、適切なものを選ぶことが大切。
カテゴリー: ディープラーニング, 備忘録 | コメントする

Amazon のタイムセールで買ったもの

Amazonのタイムセールが、今週末(7/24(金)~26(日))開催中ですが、

ドラッグストアのカテゴリは、いつもCheckしているような気がする。

洗顔フォーム、紙おむつ、洗濯機用の洗剤、手洗い用の洗剤は、
定期的になくなるものとなっている。

私にとって、タイムセールで買うか買わないかを左右するものは、値段であり、

市販のドラッグストアの価格と比較して、タイムセールのほうが安ければ買う。
(これは、みなさん同じだと思うけど)

時々、タイムセールでもAmazonのほうが市販価格よりも高い場合もあるので、
そんなときは、がっかりしていしまいますが、最初に挙げた者たちは定期的に必要になるので、毎回チェックしてしまいます。

今後の備忘録も兼ねて、スクリーンショットを貼っておこうと思います。

ハンドソープ → キレイキレイ:【Amazon.co.jp限定】 【医薬部外品】キレイキレイ 薬用 泡ハンドソープ シトラスフルーティの香り 詰替え用 800ml×2個 除菌シート付 1098円

【Amazon.co.jp限定】 UNO(ウーノ) ホイップウォッシュ (ブラック) 洗顔料 130g×3個+おまけ(ウーノ バイタルクリームパーフェクション メンズフェイスケア サシェ1個) シトラスグリーン セット -> 917円

カテゴリー: Amazon, 備忘録, 買い物 | タグ: , | コメントする

今日のアスペ行動

今日も、アスペルガー的な行動で、娘と揉めて、こちらの心も荒んでいる。
習い事のプールへ行く前に、プールの用意を自分するようにさせていたのだが、

なっても、ダラダラと布団の上で過ごしていたので
「早く用意しなさい!」
と何度も注意して、やっと重い腰を上げて用意し始める。

その後も、水着や、帽子、バスタオルなどを丁寧に畳んで
かばんの中に詰めていくのだが、

そもそも、プールのレッスンが始まる30分前にやることではないし、

「レッスンに遅れるから、早く出発してほしい」と、
こちらが何度伝えても、「きれいに畳まないとだめなの!」と娘の方も
イライラしながら言い出す始末。

こちらもヒートアップしてきて、「プール始まる時間だよ!いつまでやってるの!早く行きな!」と、
追い出そうとすると、キレ気味に、泣きながら「(プールへ)行きたくない!」と言い出してきて
収拾がつかない状態になった。

玄関を泣きながら出て、廊下でもワンワン泣きながら歩くので、
近所の目が非常に気になった。

妻がなんとかフォローしてくれて、一緒にエレベータまで1階へ行き、
プールへ向かってくれたようだったが、

こちらが理解できない行動が多すぎて、私はフォローしていく自信なんか持てない。

ふと、今後どうやってフォローしていけば良いのだろう・・・
と検索していると、

旦那さんがアスペルガーと結婚後に気づいた方のブログ

ほんきっき

アスペルガー夫に悶絶する新妻のほんきにっき

を発見。
苦労が理解できる内容に、エールを送りたくなった。

カテゴリー: アスペ, 休日, 備忘録, 子育て | コメントする

rar 圧縮時のコマンド

たまに必要になるけれど、その度に忘れるコマンドがいくつかあるので
備忘録的な意味合いも込めて、残しておく。

以下のファイル圧縮時に使うコマンド
→ Path 先の複数フォルダを探して、rar.exe で圧縮する

find /d/misc/book/bibun/ -d -maxdepth 1 | xargs -i rar.exe a {} {}

カテゴリー: コマンド, 備忘録 | タグ: , , , | コメントする

図書館で返却した本・借りた本(20/07/23)

今日は、海の日で休日であったのと、天気がくもり空で遠出もできないので、
近所の図書館へ予約していた本を受け取りに行ってきました。

貸し出し期限が7/24までの本が、
以下の4冊もあったので、鞄の中がふくれてしまいました。


そして、予約していた以下3冊の本を受け取ってきました。
意外にも本が厚いので、帰りも鞄の中が膨れてしまい重たい感じでした。

カテゴリー: 休日 | タグ: , , , , | コメントする

Convert *.py to *.ipynb

*.py スクリプトを Jupyter Notebook に変換する際に
手っ取り早くできないか、調べてみたところ・

以下の”p2j” コマンドで、簡単に変換できそうなことが
わかった。(参照サイト

install も、実行してみた感じでも簡単にできた。

以下は、実行例です。

– p2j をpip install
– 106-1.py をp2jで、Convert

XXXXX@DESKTOP-C88BUUQ MSYS /d/01_work/pyQ/106
$ pip install p2j
Collecting p2j
  Downloading https://files.pythonhosted.org/packages/ee/5b/98fd10f7ba9fdfc99613c99040a87285dfc68392e5a059c22387ea814e39/p2j-1.3.2-py3-none-any.whl
Installing collected packages: p2j
Successfully installed p2j-1.3.2

XXXXX@DESKTOP-C88BUUQ MSYS /d/01_work/pyQ/106
$ p2j 106-1.py
Notebook 106-1.ipynb written.

20/08/12

使い続けていくうちに、p2jは色々と”癖”があることがわかり、期待しない *.ipynb 出力になることが判明。

具体的には、

  • markdown になってほしいところは、行頭に#2つ必要。
    • -> 章, 節 になってほしければ、通常の#の個数に+2 #が必要。
  • 改行部分が、<br>タグに変更される
    • markdown 内のコード部分が、
      • ipynb に変換されたあと打ち消しになる
      • 灰色でマーカーを引いた様になる
      • 章、節の部分が、期待通りに変換されない

といった感じである。

灰色でマーカーを引いた様な感じ
章、節の部分が、期待通りに変換されない

以上により、↑の処理を回避するためのテキスト変換をするか、
他のipynb へ変換するツールを探す必要が出てきた。

カテゴリー: python | タグ: , , | コメントする