平均情報量の平均って書いてあるけど、式を見ると期待値じゃない。。違いは?
この記事を読むとわかること
基本情報技術者試験の基礎理論の情報量で、
平均情報量がでてくるけど式を見ると期待値だった。
なぜ平均と呼ぶのか(呼んでいいのか)、自分なりの解釈をまとめた。
平均情報量
は事象の生起確率
は事象の情報量
式をみると、各事象の生起確率に情報量を乗算しているので、
期待値ではないかと疑問がでる。
平均値は、実は、ある状況下では、期待値に等しくなる。
期待値と平均値は?
ある標本サイズの観測データ,,,.....において、
期待値と平均がどのように定義されるか見ていくと
母集団より、という値が観測される確率をとする。
また、回の観測において
が観測される回数をと置き、
期待値と平均とする。
ここで、大数の法則から標本サイズがまで大きくなる時、
となる。つまり、標本数がの時、 とが等しくなる。
結論
算術平均も期待値も、大数の法則にのっとって、式を変形すれば、等しい。
そのため各事象の情報量の期待値を求めている平均情報量は、
平均っていう言葉を使っても何ら不思議ではない。
AWSで”Failed to execute operation: The name org.freedesktop.PolicyKit1 was not provided by” が出た時の対処法
このページを見てわかること
AWSで、”Failed to execute operation: The name org.freedesktop.PolicyKit1 was not provided by any ~~” といったエラーが出た時に試すべきことがわかる
直面した問題
sshを使いたかったので、下記コマンドを打って、サービスを有効にしようと思ったらエラーが出た
systemctl enable sshd.service
エラー
Failed to execute operation: The name org.freedesktop.PolicyKit1 was not provided by any .service files
対処法としては、
sudoつけると実行できました。
コマンドの実行権限がないから起きるエラーだそうです。
ちょっとしたことで時間とられちゃうな( ゚Д゚)
Javaのバージョンを切り替える方法
このページを見てわかること
AmazonLinux2で利用するバージョンの切り替え方がわかる
経緯
古いjavaを使わなければならなかったが、 AWSには既にjavaが入っていたので、切り替える必要があった
方法
下記コマンドを打つと切り替えられる
# alternatives --config java
下記のようにjavaを選べと出てくるので、選択する(+がついているのが現在利用されているもの)
Selection Command ----------------------------------------------- * 1 /usr/lib/jvm/java-17-amazon-corretto.x86_64/bin/java + 2 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.342.b07-1.amzn2.0.1.x86_64/jre/bin/java) Enter to keep the current selection[+], or type selection number:
環境設定って時間ばっかりかかって面倒
AmazonLinuxのディストリビューション確認手順
本ページでわかること
AmazonLinuxのOSのバージョン確認方法がわかる。
経緯
AWSを利用していて、MariaDBを導入しようと思ったら、 OSの種類が分からなかったため
方法
[ec2-user@ip-172-31-31-145 ~]$ cat /etc/os-release NAME="Amazon Linux" VERSION="2" ID="amzn" ID_LIKE="centos rhel fedora" VERSION_ID="2" PRETTY_NAME="Amazon Linux 2" ANSI_COLOR="0;33" CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2" HOME_URL="https://amazonlinux.com/"
これでID_LIKE="centos rhel fedora"なのでcentOS系なのかなとわかる また、下記記事によるとCentOS7のパッケージを利用すればよいらしい。
フォーラムを読まなくても情報があるって素敵
cron使うときは、絶対パスだと心得よ
このページに書いてあること
cronを使って、1分おきにカメラで撮影したいと思ったのですが、 思ったより、はまったので、メモをしておきます。 できているつもりでしたが、相対パスを記載していたため、バグに気づきませんでした。
cronの設定
下記コマンドで、出力されるファイルを変更する
crontab -e
変更例①
//アスタリスク(*)の意味は左から順に //分 時 日 月 曜日 コマンド らしい。 //1時間ごとに、0分の時にカメラでキャプチャするなら下記のように 0 */1 * * * sh /home/pi/Work/capturetest.sh
cronのストップ、再起動、確認
cronの設定を上書きするため、一度、ストップし、再起動して、cronが動いているか確認する
そのためのコマンドは下記
◆ストップ
sudo systemctl stop cron
◆再起動
sudo systemctl restart cron
◆動いているか確認
sudo systemctl status cron
下記のようにrunnningと出てれば動いている
cron.service - Regular background program processing daemon Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: ena Active: active (running) since Fri 2022-10-28 14:48:52 JST; 7min ago Docs: man:cron(8) Main PID: 6674 (cron) Tasks: 1 (limit: 4915) CGroup: /system.slice/cron.service mq6674 /usr/sbin/cron -f -L 15
はまったこと
上記の変更例①でcapturetest.shの中身を見ると
/usr/bin/python3 /home/pi/Work/captureTest.py
上記のようにpython3コマンドの絶対パスを記載すること さらに、.pyの中身でパス指定している場合は、絶対パスにしておくこと。 私の場合は、”./”以下に保存するようにpythonで記載していたため、 cronが動いていても、ルート直下に画像が保存されていた。
はまらないで、開発スピードを上げたい。。。。今日この頃
Anacondaとpycharmで、良く使うコマンドメモ
このページに書いてあること
私は、Anacondaでpythonを用いた開発をするのですが
よく使うコマンドを忘れるのでメモします。
また、pycharmでAnacondaの環境を読む方法をメモします。
仮想環境の切り替え
conda activate 環境名
ちなみに、環境名の確認は
conda info -e
環境にインストールしたパッケージの確認方法
仮想環境に切り替えた後、下記コマンドを打つ
conda list
pipで導入した場合は、pipで確認する
仮想環境の構築
conda create -n 環境名
上記だと、pythonのバージョン等は、最新版が導入されてしまう。
バージョン指定などしたい場合は、下記のようにする
conda create -n 環境名 python=x.x numpy=1.xx.x
pycharmでAnacondaの環境を読み込む方法