- 0.1. kaggle の Courses を読む —Intro to Machine Learning 1~3
- 0.2. 日本語テキストから、SVO格を指定した検索単語を含む「係受け元単語 -> 係受け先単語」を全件出力するGUIツール
- 0.3. 決定性有限オートマトンで等価な状態を調べる
- 0.4. Cython+Numpyでいいとこどり
- 0.5. ConoHa WING CLIあれこれ (WP cli, Linuxbrew, pymux)
- 0.6. tensorflow2のtf.data.Datasetをfrow_from_directory()のように手軽に作成できる関数を作る。
- 0.7. Python スライス指定で変数を使う際の注意点
- 0.8. Pythonで生存時間解析 〜Nelson-Aalenによるハザード比の推定〜
- 0.9. [OpenCV]動画を表示する方法
- 0.10. Pythonで生存時間解析 〜Kaplan-Meierによる生存関数の推定〜
- 0.11. MitamaでTodoアプリを作ってみる(1) – Mitamaアプリの構成
- 0.12. AttributeError: ‘CallbackContext’ object has no attribute ‘message’とエラーが出る
- 1. ・エラー内容
- 1.1. Python、LINE BOTで一斉送信
- 1.2. Pythonでメソッドの多重定義:TypingのUnionと、typeによる引数の型判定の組合せで実装可能
- 1.3. PythonでJavaScriptの分割代入のようなことをする
- 1.4. openSMILE3.0がリリースされた
- 1.5. Watson Assistantの更新をPythonから行う(Watson Assistant API v1を使用)
- 1.6. スタジオジブリ作品の場面写真を楽に全部ダウンロードしたい【Python】
- 1.7. 【備忘録#1】Pythonのインストールからインタラクティブシェル起動まで(Mac)
- 1.8. Pythonで一元配置分散分析
kaggle の Courses を読む —Intro to Machine Learning 1~3
# 初投稿!
はじめまして!まはらせないき と申します!
2020/12/3現在、大学1年生で機械学習を勉強中です。自分のモチベを保つために、[__kaggle__](https://www.kaggle.com/) の __Courses__で学習したことを書いていきます。英語の学習もできて一石二鳥!
__これからよろしくお願いします!__
##決定木によるモデルの作成
__Courses__ では、_pandas_ を使って内容が進んでいきました~Courses の流れ~
1.モデルとは何か
2.データを見てみる
3.”決定木”による機械学習のモデル作成
4.モデルの検定
5.ランダムフォレスト
6.機械学習の大会今回は、__1~3まで__の内容を振り返ります
___
何かを推測するときは、__今までの経験測__ に基づいて推測するのが普通ですよね。その経験則を __パターン化する機械的な手順__ を ___モデル___ といいます。モデルの作り方には様々な種類が存在し、ここでは __決定木__ という方法を使います。(後に登場する __ランダムフォ
日本語テキストから、SVO格を指定した検索単語を含む「係受け元単語 -> 係受け先単語」を全件出力するGUIツール
###( 後記 )
画面の下部にある__ラベル「指定単語が指定した格で登場するぬ文脈から、」__の部分で、__「するぬ」は誤記__です。__正しくは、「する」__です。
___
##作ったもの
サンプルの和文テキストは、NHK NewsWebの国際面に、2020/12/1に掲載されていた__[記事](https://www3.nhk.or.jp/news/html/20201201/k10012741251000.html?utm_int=news_contents_news-main_001)__から拝借しました。
__0. Teminalで、Pythonスクリプトファイルを実行__
“`bash:Terminal(Python3.9.0)
% python3 tkinter_ner_svo_list_filter_by_target_word_and_case_file_dialog2.py
“`__1. ファイル選択ダイアログから、解析したいテキストファイルを選択__
![スクリーンショット 2020-12-03 3.06.09.png](https://q
決定性有限オートマトンで等価な状態を調べる
# 概要
Python使って、決定性有限オートマトン(以下DFA)の等価な状態を調べます。
# 前提
– pythonの基本文法知ってる人
– DFA知ってる人# 環境
windows 10
python 3.8automata-libライブラリを使用します。
> The library requires Python 3.5 or newer.
3.5以上が必要みたいですね。
“`
pip install automata-lib
“`# プログラム本体
“`python
from automata.fa.dfa import DFASYMBOL_FORMAT = lambda s0, s1 : f'{s0},{s1}’
def directProduct(target0:DFA, target1:DFA, form = SYMBOL_FORMAT):
”’ 直積オートマトンを求める ”’
new_input_symbols : set = target0.input_symbols | target1.input_sym
Cython+Numpyでいいとこどり
## TL;DR(要約)
– Cythonを使えば、(実装内容によっては)処理が遅い関数やクラスを高速化できる
– CtyhonとNumpyを組み合わせるには、ちょっとしたコツが必要
– notebookで実行する場合とスクリプトで実行する場合で、やり方が少し異なる## 前置き
Python、便利ですよね。研究開発分野では言わずもがな、ちょっとした開発をする分にも申し分ない手軽さとライブラリの豊富さがあります。ただやはりせっかちな私にとってはもう少し早く実行が終わってほしいところ。ということで、Cython+Numpyを使ってちょっとでも高速化できないか調べてみました。
## Cythonとは?
> Cython is an optimising static compiler for both the Python programming language and the extended Cython programming language (based on Pyrex). It makes writing C extensions for Python as eas
ConoHa WING CLIあれこれ (WP cli, Linuxbrew, pymux)
[ConoHa Advent Calender 2020](https://qiita.com/advent-calendar/2020/conoha) を書くにあたって、なににしようかなと思い立ちましたが、ConoHa WINGについて書くことにしました。
私は、webの置き場所としてや、sshfsのストレージとして、またssh terminalでのちょいとコマンド実行できるLinux環境として活用しています。
ConoHa WINGでせっかくssh/sftpがあるのだからと、VPSの補助用の環境として使っています。
雑多に、私が使っているCLI関係の話を 2020/12/2 の記事にしようとか思います。## ConoHa WINGとはどんな環境なの?
ConoHa Cloud VPSでは、VMを作ってwebを動かすまで色々設定が必要だったりするが、ConoHa WINGではすぐにwebサーバとして、メールサーバとして使える機能がホスティングサービスとして提供されていますね。
とくに、WordPressを簡単に運用することにかなり注力されていることが、コントロールパネル
tensorflow2のtf.data.Datasetをfrow_from_directory()のように手軽に作成できる関数を作る。
#はじめに
**注:個人メモですので使用の際には自己責任で。**
**注:tensorflow2.3.0でのみ動作、正式実装ではない関数を使用しています。**`tf.data.Dataset`のdatasetパイプラインを`flow_from_directory()`のように手軽に作るクラスを定義する。
augmentaionも組み込んでおく(フリップ、回転、ズームのみ)。[以前の投稿](https://qiita.com/masamiic/items/79dd55d0a8654e1f9d29)も参照ください
“`py:python3
import tensorflow as tf
AUTOTUNE = tf.data.experimental.AUTOTUNE
import glob
import os
import numpy as np
import randomclass creat_dataset_from_directory():
def __init__(
self,
train_dir_path,
valid_dir_
Python スライス指定で変数を使う際の注意点
#python: エラー 「slice indices must be integers or None or have an \_\_index__ method」が出た時の解決法
pythonにて以下のエラーが出たので、その際の対応記録です。“`
TypeError: slice indices must be integers or None or have an __index__ method
“`##エラーコード
観測データの解析でfftを使うときに以下のようなコードでエラーが出ました。“`fft.py
freq = [0,1,2,3,4,5,6] #リスト
fft_sampling = 7 #リストをスライスする用
out = freq[1:fft_sampling/2]
“`リストをスライスする際は整数か`__index__ method`で指定をしないとだめらしい。
##解決策
`fft_sampling/2`を`fft_sampling//2`と指定することで、`fft_sampling`がいくつでもスライスを整数で指定ができる。
Pythonで生存時間解析 〜Nelson-Aalenによるハザード比の推定〜
生存時間解析のPythonパッケージである `lifelines` を用いて、Nelson-Aalenによるハザード比の推定を行います。本記事は以下の記事の和訳になります。
* [Estimating univariate models – LIFELINES](https://lifelines.readthedocs.io/en/latest/Survival%20analysis%20with%20lifelines.html)
– [Estimating the survival function using Kaplan-Meier](https://lifelines.readthedocs.io/en/latest/Survival%20analysis%20with%20lifelines.html#estimating-the-survival-function-using-kaplan-meier)
– [Estimating hazard rates using Nelson-Aalen](https://lifelines.readthedo
[OpenCV]動画を表示する方法
#はじめに
OpenCVによる画像処理の基礎を整理します。
100本ノックのように、毎日追加していきたいと思います。#やりたいこと
mp4の動画ファイル、WebCamからの映像をパソコン画面上に表示したいと思います。#プログラム構造
cv2.VideoCapture()を利用します。
“`Python
#動画ファイル
cap = cv2.VideoCapture(‘video.mp4’)
#内臓カメラ
cap = cv2.VideoCapture(0)
#USBカメラ
cap = cv2.VideoCapture(1)
“`そして、cap.read()から動画のフレームをimgに入れ、それをimshow()で表示します。
このプロセスをWhile文を利用して繰り返し実行します。←ここがみそ。“`Python
while True :
ret, img = cap.read()
cv2.imshow(‘Video’, img)
“`#実行結果
![bandicam-2020-12-02-17-27-43-031.gif](https://
Pythonで生存時間解析 〜Kaplan-Meierによる生存関数の推定〜
生存時間解析のPythonパッケージである `lifelines` を用いて、Kaplan-Meierによる生存関数の推定を行います。本記事は以下の記事の和訳になります。
* [Estimating univariate models – LIFELINES](https://lifelines.readthedocs.io/en/latest/Survival%20analysis%20with%20lifelines.html)
– [Estimating the survival function using Kaplan-Meier](https://lifelines.readthedocs.io/en/latest/Survival%20analysis%20with%20lifelines.html#estimating-the-survival-function-using-kaplan-meier) 【本記事の対象】
– [Estimating hazard rates using Nelson-Aalen](https://lifelines.re
MitamaでTodoアプリを作ってみる(1) – Mitamaアプリの構成
[Mitama Advent Calendar](https://qiita.com/advent-calendar/2020/mitama)2日目です。
[木瓜丸](https://twitter.com/boke_0)です。今回から何回かに分けてMitamaで~~ゴミアプリの代名詞~~Todoアプリを組んでみましょう!
この記事では、アプリの動かし方や基本的なアプリの構成について書きます。
## アプリディレクトリの作成
アプリを動かす時は、1. Pythonのモジュール検索パス(site-packagesとかのパス)にパッケージをインストール方法
2. プロジェクトのディレクトリの直下にパッケージを設置する方法の2つがあります。
(「プロジェクト」ってなんや?って方は、こちら→『[Mitama + nginx + uWSGIで社内システムを立てる](https://qiita.com/ta1g3n/items/48e25f7b546934e42694#mitama%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%
AttributeError: ‘CallbackContext’ object has no attribute ‘message’とエラーが出る
趣味で、教本”Pythonでつくる対話システム”にてモデルを学習させ
そのモデルを使ってTelegram-botで会話するのを試みましたが、
2bert_ebdm_systemを実行しtelegramで何かメッセージを送ると下記のようなエラーが出ます。・エラー内容
“`python:ErrorDialog
Traceback (most recent call last):
File “C:\Users\Katuta\AppData\Local\Programs\Python\Python38\lib\site-packages\telegram\ext\dispatcher.py”, line 432, in process_update
handler.handle_update(update, self, check, context)
File “C:\Users\Katuta\AppData\Local\Programs\Python\Python38\lib\site-packages\telegram\ext\handler.py
Python、LINE BOTで一斉送信
#概要
前回作成したLINEbotを元に一斉送信ついてまとめたいと思います
![スクリーンショット 2020-12-02 111946.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/603568/0c839d87-4535-377c-16b8-b10570a057ac.png)#一斉送信(ブロードキャストメッセージ)
今回はこちらサイトを参考にさせていただきました。
https://qiita.com/hiro0236/items/a649d90654d7807b2d55
サイト内にあるブロードキャストメッセージのソースコードを引っ張ってきました。“`python
from linebot import LineBotApi
from linebot.models import TextSendMessageCHANNEL_ACCESS_TOKEN = “チャネルアクセストークンを設定”
line_bot_api = LineBotApi(CHANNEL_ACCESS_TOKEN)de
Pythonでメソッドの多重定義:TypingのUnionと、typeによる引数の型判定の組合せで実装可能
###問題意識
__Python__では、メソッドの多重定義(オーバーロード)をする機能が標準で付いていない。
そこで、TypingのUnionと、typeを用いた引数の型判定の組合わせで実装してみた。
###実装コード
例として、__配列(list)__と__文字列(str)__を__両方、引数として受け取る__ことができ、__どちらを受け取ったかにより、異なる処理を行う__メソッドを作成してみました。
“`Python:ipython(Python3.9.0)
In [1]: from typing import Dict, Tuple, List, UnionIn [2]: def sample_func(arg : Union[str, List]) -> str:
…: if type(arg) is list:
…: output_str = “\n”.join(arg)
…: elif type(arg) is str:
…: output_str = arg
.
PythonでJavaScriptの分割代入のようなことをする
#やりたいこと
JavaScriptの[分割代入](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment)のようなことがPythonでしたいです。“`JavaScript:destructuringAssignment.js
let a, b, c;
[a, b, c] = [“x”, “y”, “z”];
console.log(a, b, c); // x y z
“`#結論
Pythonの[シーケンスのアンパック](https://docs.python.org/ja/3/tutorial/datastructures.html#tuples-and-sequences)によって実現できます。“`Python:unpack.py
a, b, c = (“x”, “y”, “z”)
print(a, b, c) # x y z
“`#余談
Pythonのテキストデータは[テキストシーケンス型](https://docs
openSMILE3.0がリリースされた
# はじめに
この前の記事でSurfboardについて取り上げたが,その時にopenSMILEは少々扱いにくいと説明した.~~あれは嘘だ.~~(当時は嘘ではなかった)
ところが,最近openSMILEがバージョンアップされ,環境に変化があったので,そのことについて整理したいと思う.# openSMILE (open-source Speech and Music Interpretation by Large-space Extraction)とは?
音声,音楽信号から特徴量抽出できるオープンソースツールキット.
主に感情認識の分野で広く用いられている.
以下,[公式サイト](https://www.audeering.com/opensmile/)から引用.>openSMILE (open-source Speech and Music Interpretation by Large-space Extraction) is an open-source toolkit for audio feature extraction and classification of sp
Watson Assistantの更新をPythonから行う(Watson Assistant API v1を使用)
# はじめに
ここではPythonを用いてAPI経由で、IBM Cloud Watson Assistantの情報を更新する方法をメモとしてまとめておきたいと思います。(今回はSkillのNameとdescription, Intentを更新してみたいと思います。)## Watson Assistantの構成
今回、Watson Assistantを触るのは初めてだったので、まずはじめに構成からおさらいします。Watson Assistantを使ってみて、わかったこととしては、構成として
大きく分けてIntent, Dialog, Entityという3つの要素があるようです。Intent: 質問の意図を定義するところ。
oooな質問がきたら、Aのグループに。
xxxな質問がきたら、Bのグループというように質問とそのグループを定義しているもの。Dialog: 主に回答と会話の流れを定義しているところ。
このグループの質問がきたら、この回答を返すと定義するところ。Entity:
同義語などを定義。ユーザーの入力を情報を表す。
公式サイトには以下と記載されて
スタジオジブリ作品の場面写真を楽に全部ダウンロードしたい【Python】
#はじめに
2020/09/18,2020/11/20にスタジオジブリ作品の場面写真が常識の範囲でご自由にお使いくださいということで提供されましたね– 「思い出のマーニー,かぐや姫の物語,風立ちぬ,コクリコ坂から,借りぐらしのアリエッティ,崖の上のポニョ,ゲド戦記,千と千尋の神隠し」
http://www.ghibli.jp/info/013344/
– 「平成狸合戦ぽんぽこ,海が聞こえる,紅の豚,魔女の宅急便,となりのトトロ」
http://www.ghibli.jp/info/013381/各作品50枚ずつなので,全部で650枚!!
全部ダウンロードしたいけど大変ですよねそこで,作品ごとにフォルダを分けて自動で保存できるようにPythonのプログラムを用意しました
#動作環境
Python 3.8.6#コード
15行目で作品名を指定しているので,「好きな作品だけダウンロードしたい!」って人は好きな作品以外の作品名を消して使ってください“`python
name = [‘marnie’,’kaguyahime’,’kazetachinu’,’k
【備忘録#1】Pythonのインストールからインタラクティブシェル起動まで(Mac)
# Pythonのインストール手順
①https://www.python.org/downloads/ にアクセス
②任意のインストールしたいバージョンをクリック
③下にスクロールし Files を探す
④macOS 64-bit installer のリンクをクリック
⑤ダウンロード開始
⑥ダウンロードしたファイルを開く
⑦規約などを読み同意していく#インタラクティブシェル起動の手順
①ターミナルを開く
②“`python3“`と入力(Python3系をインストールしたと仮定)#総括
突っかかったところなどはありませんでした。強いて言えばバージョンを何選ぶかで悩む人がいるかな?と感じました。
ググってコマンドが新しくなりヒットの絶対数が少ないのはいやだと思ったのでほどほどに新しいものを選択しました。#注意
この記事はど素人によるもっとど素人に向けた記事ですらなく備忘録です。お手柔らかにお願い致します。
Pythonで一元配置分散分析
# 分散分析の概要
以下のような問題を考えます。
“`:【例題】
因子Aについて4つの水準A1~A4があり、それぞれの水準で以下のような観測が得られた。
水準間に違いはあると言えるか、有意水準5%で検定せよ。
“`|level \ n| 1 | 2 | 3 | 4 | 5 |
|:——–|:–|:–|:–|:–|:–|
| **A1**| 15| 13| 15| 16| 14|
| **A2**| 18| 17| 16| 15| 18|
| **A3**| 19| 16| 17| 18| |
| **A4**| 17| 15| 16| | |2標本の平均値の差の検定にはt検定が用いられますが、上記の問題のように3群以上からなるデータの場合には「**分散分析**」を行います。この場合、因子がAのみであるため「**一元配置分散分析**」です。
帰無仮説$H_0$は「各水準の母平均は等しい」、対立仮説$H_0$「少なくとも一つの水準について母平均が異なる」となります。
# 分散分析の実装
パッケージを利用して分