Python関連のことを調べてみた2021年02月13日

Python関連のことを調べてみた2021年02月13日

量子コンピュータによる機械学習に載っている機械学習手法を実装してみました

# 目次
1. はじめに
2. ベイジアンネットワーク
3. 隠れマルコフモデル
4. カーネル密度推定
5. k近傍法
6. サポートベクターマシーン
7. まとめ


# はじめに

機械学習の勉強を始めようと参考書を開くと様々な手法が次々と紹介されていて,少々困惑してしまいました.そこでそれぞれの手法を実際に実装しながら調べたりすることで理解を深めようと思いました.正直pythonのライブラリを使った実装なので細かい理論までは追えていませんがそこは追々ということにしておきます.


# ベイジアンネットワーク
>ベイジアンネットワークとは条件つき独立性を仮定した確率モデルであり,$p(s)$の扱いを平易にする.

細かい理論については置いておいて,この記事では実装することを目標にpgmpyを用いて実装していきます.

## 問題設定

【VSCode】black : pythonのfomatterを導入

背景

fomatterで有名なのがC++ならc-lang, pythonであればblack
いつも使ってるblackのインストール方法をメモ

install

blackをインストール

“`
pip install black
“`

pythonのextensionをinstall
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482094/685f42c2-5afe-6367-cae6-22c38fa9b382.png)

gedit ~/.config/Code/User/settings.jsonで以下の2行を追加する

“`
“python.formatting.provider”: “black”,
“editor.formatOnSave”: true,
“`

結論

・formatterあると便利!

参考文献

VSCode: Using Black to automaticall

元記事を表示

sympyで通過算

#概要

sympyで通過算やってみた。

#参考にしたページ

https://qiita.com/mrrclb48z/items/69c44680308709addd2d

#成果物

https://paiza.io/projects/LNtvP0CIFPMz5fnh5mFiCw

https://paiza.io/projects/INDn6f9X3yhTBzccoDetWw

以上。

元記事を表示

manimの作法 その49

#概要

manimの作法、調べてみた。
ComplexPlane使ってみた。

#サンプルコード

“`
from manimlib.imports import *

class test(Scene):
CONFIG = {
“plane_config”: {
“x_radius”: 9,
“y_radius”: 9,
“stroke_width”: 3,
},
“background_plane_config”: {
“color”: LIGHT_GREY,
“secondary_color”: DARK_GREY,
“stroke_width”: 0.5,
“stroke_opacity”: 0.5,
“secondary_line_ratio”: 0,
}
}
def construct(self):
self.add_planes()
z_tuples = [(complex(2, 1), “2 + i”, UP), (complex(5, 2), “5 + 2i”, LEFT), (com

元記事を表示

[Django初心者]DjangoでTodoリストを作成する②(省略Ver)

今回は「[Django初心者]DjangoでTodoリストを作成する②」の第2回として、Todoの一覧表示まで一気にやっていきたいと思います。

前回はプロイジェクトを立ち上げ、ロケットを飛ばし、settings,pyの編集まで行いました。

まだそこまでやれていない人はぜひ第1回をみてください。

[[Django初心者]DjangoでTodoリストを作成する①](https://qiita.com/cardene/items/b15b0172fc446259fd29)

また、この記事は手順の確認のため解説を省いています。
細かい説明しているバージョンもあるので、初学者のかたは下記を見てください。

[[Django初心者]DjangoでTodoリストを作成する②](https://www.cardenema.com/?p=100)

それでは早速やっていきましょう!

#現在のディレクトリの構成

“`terminal
├── config
│ ├── __init__.py
│ ├── asgi.py
│ ├── settings.py
│ ├── urls.

元記事を表示

Pythonのクラスの中身は関数である

この記事は人間でもわかるPythonバイトコードシリーズ第2回目の記事ですが、この記事から見始めても大丈夫です。
前回の記事は[こちら](https://qiita.com/MtShiba/items/6734fe97f4c4fc658936)です。

前回の記事で、次は.pycファイルのフォーマットについて説明すると書きました。が、Pythonバイトコードの仕様について調べているうちにクラスと関数の__興味深い関係__を発見しましたので、予定を変更し、タイトルも独立したものとして記事を書くこととしました。

# 環境

CPython 3.9.0

# Pythonは関数をどう定義しているか?

まずPythonインタープリタ内での関数の扱われ方について見ていきましょう。
次のスクリプトのバイトコードを逆アセンブルします。逆アセンブルとはなんぞという人は[前回の記事](https://qiita.com/MtShiba/items/6734fe97f4c4fc658936)を参照してください。

“`python
def f(x, y):
return x + y
“`

元記事を表示

BERTと、論文『Attention Is All You Need』に対する読解力を、競ってみた(全20問)。

#概要
以前に、

[BERTを30分ぐらいでちょっと経験してみる。](https://qiita.com/enoughspacefor/items/66a7619c83e337dd7712)

という記事を書いたことがある。
この記事は、
以下のサイトで、提示されていた、**BERTを使って、TOEICのPart 5の問題を解く**ためのコード(30行程度)を動かしてみたというものである。
https://www.ai-shift.jp/techblog/281

今回、
BERTで使っている**Transformer**を提案している有名な論文『**Attention Is All You Need**』内の文章を対象に、**TOEICのPart 5の穴埋め問題**を作成し、
競ってみた。

勝ち負けは、

* 間違った候補を選択させた: ワタシの勝ち
* 正しい候補を選択した: BERTの勝ち

#結果

|問題1||備考|
|:—:|:—|:—|
|問題文|To the best of our * , however, the Transformer is th

元記事を表示

tsfreshで時系列特徴量をつくる手順のメモ

時系列データから特徴量を作成する為のpythonライブラリであるtsfreshのチュートリアルをやってみました

tsfresh
https://tsfresh.readthedocs.io/en/latest/

# 1. インストール

pipで入ります

“`terminal:terminal
pip install tsfresh
“`

# 2. データの準備

“`python:python
from tsfresh.examples.robot_execution_failures import download_robot_execution_failures, load_robot_execution_failures
download_robot_execution_failures()
timeseries, y = load_robot_execution_failures()
timeseries
“`

サンプルデータはスタックした時系列データになっているようです
yukicoder contest 282 参戦記

# yukicoder contest 282 参戦記

## [A 1389 Clumsy Calculation](https://yukicoder.me/problems/no/1389)

chinerist 君が間違わなかったとすると、Si の合計は X * N – (A1 + A2 + … + AN) = X * N – X = X * (N – 1) となる. 間違っているのが Sj だとすると、Sj = 2 * (X – Aj) となり、実際の Si の合計は X – Aj 増えた X * (N – 1) + (X – Aj) となる. 求めるのは間違えた計算の正しい答え、つまり Sj の正しい値 X – Aj なので、実際の Si の合計から、正しい Si

元記事を表示

テキスト中のIPythonコンソールのインデックスを自動で振り直す

Qiitaの記事にIPythonコンソールの実行結果を書きたいことがありました。
その際にコピペしたテキストのInオブジェクト、Outオブジェクトのインデックスがバラバラで、手作業で振り直すのが面倒だったのでスクリプトを書きました。

https://github.com/ezotaka/renumber_ipython_inout

以下、README.mdをそのまま抜粋します。

# renumber_ipython_inout.py
テキストに含まれるIPythonコンソールIn、Outオブジェクトのインデックスの再割り当てを行うスクリプトです。

## このスクリプトの使い道
IPythonコンソールの実行結果のコピペを、きれいにして共有したいときなどにお使いください。

例えば、以下のようにインデックスがバラバラなテキストが、

“`python
In [2]: index = ‘ ^100hoge’

In [3]: import re

In [13]: match = re.match(r’^\s*(\^)(\d*).*’, index)

In [29]: mat

元記事を表示

モルカーをCycleGANで現実の車っぽくしてみた

PUI PUI モルカー
———
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/403868/b3ee9b93-a652-4490-bdaf-262cc9b6e825.png)

毎週火曜に数分のショートアニメが放送されている”PUI PUI モルカー”.

パペットキャラ・アニメとして,愛らしいモルモットの姿をした車『モルカー』の愛嬌~~と,その裏に存在する人間の愚かさ~~を見事に表現した作品です.

元記事を表示

RHEL7でPython2系を更新する

RHEL7(Red Hat Enterprise Linux 7)でPython2系をバージョンアップする方法について書いておきます。

# 注意点

Python2系は2020年1月1日でEOLを迎えており、Python2の最後のリリースは2020年4月20日のバージョンとなっています。
そのため、そもそもPython2のバージョンアップが必要な状況はほとんどないでしょう。

[Python Release Python 2.7.18 | Python.org](https://www.python.org/downloads/release/python-2718/)

また、RHELも8がリリースされていることから7を使う機会は少ないと思われます。

とはいえ、検証をおこなうために古いバージョンを使わないといけないこともあるでしょう、ということでおこなった作業と参考にした内容を書いておきます。

最後に、デフォルトでインストールされているPython2は弄らないようにします。
システムで使われているものなので、どのような影響が出るかわからないためです。

# 環境

– RH

元記事を表示

Apex Legendsの情報をAPIとPythonでゲットする

#はじめに
この記事では、Pythonを使用してTRACKER NETWORKのAPIを叩いてAPEXの統計情報を取得する方法を解説します。

#参考
Apex Legends APIなるものがあるらしいので叩いてみる

#目次
– TRACKER NETWORKのAPIを設定する
– 登録
– アプリケーションの作成
– APIキーの確認
– PyhtonでAPIを叩く
– APIの叩き方
– JSONを扱う
– コード
– 結果
– 色々見てみる

#TRACKER NETWORKのAPIを設定する
##登録
まず、APIを使用するためにTRACKER NETWORKに登録する![スクリ

元記事を表示

requestsでAPIコールする際にSSL: CERTIFICATE_VERIFY_FAILEDが出ても、認証を切らない対処法

requestsを使ってhttpsのエンドポイントにAPIコールしたらSSLErrorになった。

“`
requests.exceptions.SSLError: HTTPSConnectionPool(host=’example.com’, port=443): Max retries exceeded with url: /exampleapi (Caused by SSLError(SSLError(1, ‘[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:777)’),))
“`

あえてHTTPS接続をする必要がないテスト時などは、以下の方法でSSL認証をしないことで回避できる。

“`python
requests.get(‘https://example.com/exampleapi’, verify=False)
“`

そうできない場合にどうするか。

## 原因

今回接続したいAPIは、Root認証局の証明書と中間認証局の証明書が必要だった。
エラーの原因は、システ

元記事を表示

【個人開発】約25時間でバレンタインなTwitter webサービスの作成してリリースしました!

# はじめに
2日くらい前に突然webサービスのアイデアが浮かびました。
バレンタインにも合いそうなwebサービスなので、とにかく速く製造してリリースするという目標でやってみました。

# どんなwebサービス
[chocopoi](https://chocopoi.page)

「ちょこぽい」というwebサービスです。

|![2021-02-12_22h10_50.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/567235/7be1a4b0-46ae-0ed9-756b-5f40081e22ba.jpeg)|
|:–|

twitterで見かけた気になる人にchoco(≒いいね)をひそかに送るサービスです。
(twitter認証が必要です)
※ホントのチョコを渡すわけではありません。「いいね」を送るとお考え下さい。

バレンタインに、下駄箱を開けるとチョコが入っててドキドキみたいなのが体験できないかな?
という思いつきから作ったwebサービスです。

|![2021-02-12_22h20_13

元記事を表示

Django 3.1のAsync Views

Django3.1が2020年8月にリリースされ、Async Viewsをサポートするようになりました。つまりView関数に加えて、Viewコルーチンを使えるのです。

今回は以下の過去記事のサンプルを、Viewコルーチンとして実装してみたいと思います。
[Python Asyncio入門 – Qiita](https://qiita.com/sand/items/0e445a13d81d20ea33c3)

まずは、Pythonの仮想環境に、必要なライブラリをインストールして、Djangoプロジェクトを作成します。

“`
python3.8 -m venv venv
venv\Scripts\activate
pip install aiohttp
pip install bs4 # BeautifulSoup
pip install django
django-admin startproject hello_async
cd hello_async
“`

viewsを以下のようにコーディングします。
indexはasyncをつけていますが(つまりコルーチン

元記事を表示

DockerでJupyterhubを試してみた

# はじめに

マルチユーザプラットフォームを作れるJupyterhubを試してみたときの自分用メモ。

# やること

– Jupyterhub起動
– jupyterhub_config.pyの設定
– NativeAuthenticatorの導入とお試し

# 環境

“`
$sw_vers
ProductName: Mac OS X
ProductVersion: 10.13.6
BuildVersion: 17G14042
“`

“`
$docker –version
Docker version 20.10.0, build 7287ab3
“`

# やったこと

## Jupyterhubの起動

[公式のドキュメント](https://jupyterhub.readthedocs.io/en/latest/quickstart-docker.html#alternate-installation-using-docker)に記載されているように、次のdockerのコマンドでJupyterhubを起動できます。

“`bash

docker run -d

元記事を表示

Pythonでローカルファイルを扱うときはpathlibを使うとイイ

Pythonでローカルのテキストや画像を開く方法の備忘録です。

### 環境
* Mac Catalina
* Anaconda
* Jupyter Note

### pathlibのPathを使う
/¥の違いを吸収してパスを生成してくれるようです。

### ローカルのテキストを開く
“`python
from pathlib import Path
file = Path(‘/Users/ユーザ名/Documents/dev/python-benkyo/txt’)
file = file / ‘test.txt’ #「パス / ファイル名」でパスにファイル名を追加できる
with open(file) as f:
print(f.readline())
“`
ディレクトリパスにファイル名を追加するときも、パス「/」ファイル名で追加できるので便利そうです。

### 結果
“`
テストファイルの中身
“`
UFT-8の文字コードなら日本語も問題なさそうです。

### ローカルのJPG画像を開く
画像はPILのImage

元記事を表示

ARと機械学習でマウスなしカーソル操作を実現

# 概要
手を使わずにマウスカーソルを操作したいけど、視線や脳波などは難しそう・・・
ARマーカーを使って顔の向きからマウスカーソルを操作できないかな・・・
そう思い、以下のようなプログラムを作成してみました。

– おでこに貼り付けたARマーカーをPC内蔵カメラで読み取る
– ARマーカーの4隅の座標からマウスカーソルの移動先を推定し移動させる

結論としては、「思ったより制御できるてるな」という感触です。
もしご興味ありましたら、ソースコードを掲載していますので是非お試しください。
(※おでこにARマーカーを貼り付けるのは、ちょっと間抜けな感じもありますが笑)

![img_20210212_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117506/97077d67-661c-bc90-9c6b-39d463c05c0f.png)

# ソースコードと使い方

### 依存ライブラリ
以下のライブラリを使用しています。
未インストールの場合は下記の通りイ

元記事を表示

Matplotlibのスタイルシートにおけるtext.latex.preambleの書き方

# 目的
Matplotlibでは、図の体裁を制御するための様々なパラメータがありますが、それらは設定ファイルの形で一括で指定することができます。(スタイルファイルのサンプルは[公式サイト](https://matplotlib.org/stable/tutorials/introductory/customizing.html)で公開されています。)その設定項目のひとつに、`text.latex.preamble` というものがあります。ここにLaTeXパッケージ名をしかるべき書式で記述すると、それらが読み込まれた上でレンダリングが行われます。しかしながら、この項目はUNSUPPORTED扱いであり、詳しい書き方は説明されていません。(「一行で書け」とだけ注意されています。)この記事ではその書き方の例を示します。

# 環境
“`
>>> conda info
conda version : 4.5.11
conda-build version : 3.0.9
python version : 3.5.6.final.0

元記事を表示

OTHERカテゴリの最新記事