oracle SQL備忘録
ORACLEだとデータベースの別名にASが使えない
検出力、サンプルサイズの決め方
検出力のお話、
検定時に、
対立仮説が成り立っているときに、
帰無仮説を正しく棄却してくれるかの指標、
永田本 サンプルサイズの決め方より
P.8
2種類の誤りに関する基本的事項
帰無仮説が棄却されない場合、
帰無仮説を支持するわけではない、
→第二種の誤りβかもしれないからだ
帰無仮説のもとでは、第一種過誤αの確率は一意にきまる、
対立仮説のもとでは、第二種過誤βの確率は一意に決まらない、
N数や対立仮説のパラメータで変わる、
検定では、
第一種過誤であるαを小さくできても、
第二種過誤であるβの値は大きくなるかもしれない。
→つまり、検定で棄却できない場合は、第二種過誤の可能性があるということ、
MNIST,CNNとかのお勉強
MNIST for expertで機械学習のお勉強中、
わからない単語を以下にメモします。
下の二つが参考文献です。
- 畳み込み(Convolution)
画像から、特徴量を抽出すること、
(画像をシャープにしたり、ぼかしたり色々、フィルタリングとも呼ぶ)
MNIST for expert のチュートリアルでは、
1枚の画像に対して、複数のフィルターをかませて、複数の特徴量を抽出している。
- プーリング
画素数を削減すること。
元画像は28×28ピクセル。
この画像に例えば2つのフィルターをかませると、
それぞれのフィルターに対応した画像が作成されるので、
2×28×28のデータ容量となる。
データ容量削減したいので、2×14×14と圧縮する。
また、
フィルタリング後の画像データ28×28は、14×14に圧縮されると、
特徴量がより際立つデータとなる。
(圧縮時、ノイズ成分がより圧縮されるイメージ?こっちの方がプーリングの主目的?)
MNIST for expert では、畳み込み、プーリングを2段構成にしています。
1段目の32枚のフィルターそれぞれに対して、
2段目のフィルターを1つかけ、足し合わせます。
続いて
1段目の32枚のフィルターそれぞれに対して、
2段目のフィルターを1つ(上のとは別のフィルター)をかけ、足し合わせます。
以下繰り返しです。
バックプロパゲーションにより、
このフィルタ、プーリングの仕方を最適にし、正解率を向上させます
jupyternote book でグラフが外部表示されない。
jupyternote book でグラフが外部表示されない。
%matplotlib inlineではなくて、
%matplotlib
と明示してあげると外部出力できた。
pycharmショートカット覚書
pycharmショートカット覚書
少しずつ追加していきます。
よく使うショートカット
https://pleiades.io/sites/willbrains.jp/keymap/pdf/shortcut_pycharm_mac.pdf
pythonサブクラスのコンストラクタ定義時の注意点(親クラスのコンストラクタが上書きしないように)
class B: """ 親クラス """ def __init__(self) -> None: self.x = 10 class D(B): """ サブクラス2 自分の __init__ を定義しているが super().__init__() を呼んでいないバージョン """ # noinspection PyMissingConstructor def __init__(self): self.y = 20
これで、コンストラを呼び出してみます。
obj2 = D() print(obj2.x) print(obj2.y)
出力は
AttributeError("'D' object has no attribute 'x'",)
となります。
→親クラスのコンストラクタがオーバーライドされてしまったせいです。
これを防ぐためには、サブクラス定義時に、
class E(B): """ サブクラス3 自分の __init__ を定義していて super().__init__() も呼んでいるバージョン """ def __init__(self): super().__init__() self.y = 20
とする必要があります。
以下参考
書評(オブジェクト指向でなぜつくるのか)
簡単にまとめていく
著作権的なやつにひっかかると嫌なので、かなり殴り書きです。
オブジェクト指向って何?
ソフトウェア開発、保守を楽にするための技術、
オブジェクト指向より前の言語で、ダメな部分
・コードの再利用が、共通サブルーチンの再利用のみ、
・ローカル変数の使用範囲がサブルーチン内のため、
それ以上、範囲を広くする必要がある変数は、グローバル変数を使う必要がある。
グローバル変数は、バグを生みやすいため、なるべく使いたくない。
オブジェクト指向でできること、
・ポリモーフィズム
→共通メインルーチンの仕組み
・サブルーチンより外の範囲で使用可能な変数(インスタンス変数)、
使用範囲はクラス内で、複数のサブルーチンからアクセス可能、
インスタンス変数とメソッドが結びついている、他のメソッドから(通常は)参照できない(しないようにする)。
あとは、コードの書く量を減らせる技術
・一つのクラスから、たくさんのインスタンスを作成できる。
・継承
→重複した内容(メソッド)をまとめる、
何がそれを可能にしている?
・メモリの使い方
クラスの簡単な説明は以下
Pythonでクラスを継承する | UX MILK