Python3関連のことを調べてみた2020年12月25日

Python3関連のことを調べてみた2020年12月25日

【ロジスティック回帰】statsmodelsでk分割交差検証を実装する

#はじめに
pythonでは,ロジスティック回帰モデルを利用できるライブラリとして主にscikit-learnとstatsmodelsが用いられます.statsmodelsには係数の有意差検定を自動でしてくれるといったscikit-learnにはない利点がある一方で,代表的なモデルの評価方法であるホールドアウト法や交差検証法に対応していません.そこで今回は,statsmodelsでk分割交差検証法を実装するためのコードを作成してみます.

statsmodelsを用いたホールドアウト法の実装については[こちら](https://qiita.com/takato0884/items/fd957fd431d41bcb3ada)をご覧ください.
# ライブラリのインストール
“`python:sample.ipynb
import numpy as np
import pandas as pd
import statsmodels.api as sm
“`
#データのインストールと前処理
データには,私が卒業研究のために独自に集めたクラウドファンディングに関するデータを用います.
このデ

元記事を表示

DBからデータを取得して返り値にするときに詰まったこと

(備忘録なので簡単に。より詳しい情報は[ドキュメント](https://docs.sqlalchemy.org/en/13/)などを参照ください)

##execute()の返り値

・sqlalchemyでDBに接続して、excute()でクエリを発行したとき、
 返ってくるのは’sqlalchemy.engine.result.ResultProxy’クラスの
 オブジェクト

・つまり、DBから取得した値をintやstrなどで返すためにはひと工夫が必要

↓↓↓例えばこんな感じ↓↓↓

~~~py
from sqlalchemy import create_engine
# 余談だけど型アノテーションはちゃんとしよう。この関数宣言をまねしちゃダメだぞ
def fetchUserIdFromDB(userName):
# DB接続
engine = create_engine(‘sqlite:///app.db’)

userId = []
with engine.connect

元記事を表示

バッチ設計とPython

# はじめに
Python Advent Calendar 2020 25日目:christmas_tree:です。

時代はサーバレースですが、オンプレミスのサーバやクラウド(IaaS)などのインスタンスでバッチを運用しているシステムもまだたくさんあると思います。

本記事ではサーバ上で動かすバッチを前提とし、前半はアンチパターンなどを踏まえながらバッチ設計のポイントについてまとめています。後半はPythonでバッチ開発する際のTipsになります。

**※本記事の内容は、あくまで考え方の一例であり、必ずしも全ての考え方がシステムに適合したり、ここに書いている内容で満たされている訳ではありません。**

## バッチ設計
バッチ処理はひとまとまりのデータに対して、一連の処理を連続で実行する処理方式のことです。語源を辿ると、汎用コンピューターの時代まで遡ります。

データを一括で処理することを目的とし、Unix系OSではcronを利用して指定した日時で運用することが多いです。また、バッチ自体のことをジョブと呼んだりもします。大規模システムではたくさんのジョブを管理するため、専用のジョブ

元記事を表示

Pixel4のカメラで学ぶDepth map-1(helper実装)

#はじめに
この記事は[Note](https://note.com/sv_engineer/m/m98195ca0c6e1)で連載している記事で扱っているCode部分のみを切り出しています。技術背景等にご興味がある方はNoteの記事の方をご参照ください。

#helperの実装
 画像の入出力を多用するのでそれらをhelperとしてまとめて実装しておきます。そうすることでCodeが見やすくなりますし、メンテナンスが楽になります。使用するライブラリーは以下となります。事前にpip等でインストールしておいてください。
– glob
– OpenCV
– numpy

それでは実際の実装を記載します。

###指定したFolder内のファイル一覧作成
 globを使用し、指定したFolder内で指定した拡張子を持つファイルの絶対パスリストを作成します。相対バスでも良いですが、後々絶対パスの方が扱いやすいので絶対パスで取得します。

“`python:helper.py
def make_file_path_list(path: str, ext: str) -> [str]:

元記事を表示

アラートメールを判別させたい。 – その x はワイルドカード? –

こんにちは。NETS1の田中(た)です。

[アラートメールを判別させたい。 – XXXXXはワイルドカードなんです! -](https://qiita.com/tatsumiya2015/items/515e40a721b23f3300f9) の続きです。

最終日が誰も登録されていないようなので書くことにしました。

# うまく判定してくれないメールの登場

ある時こんなアラートメールが届きました。

“`
Dec 14 12:59:12 app001 2020/12/14 12:59:12.449 app001 ERROR ERROR002 ecnxeci-1349 すごいことがおきました。 sugoi[10223] でエラー あぁ、なんという!
“`

一覧表をみれば明らかに電話連絡とわかります。

|エラーコード|エラーメッセージ|対応|
|:———-|:————–|:————:|
|ERROR002|app00x ERROR ERROR002 xxxxx すごいことがおきました。 XXXXX[10223] でエラー|電話連絡

元記事を表示

Redashでクエリを投げてみる

# はじめに

先日Redashをローカル環境にインストールしたので、今回はデータベースにデータを入れて、Redashでクエリを投げるところまでを実施します。
Redashのインストールについては[こちら](https://qiita.com/dyamaguc/items/a7a16f8ca9b562c33090)をご覧ください。

# 環境

MacBookAirを使用しています。OSなどは次の通りです。

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

$python –version
Python 3.7.3

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

Redashを起動した状態を想定しています。

“`
$docker container ls
CONTAINER ID IMAGE COMMAND CREATE

元記事を表示

Splunkで見る新型コロナウィルスのファクトフルネス

メリークリスマス!2020年もあと1週間。今日の夕方のクリスマスケーキとチキンの行列はいつもより長かった気がします。みなさん自宅でのクリスマスなんでしょうか。

2020年1月から発覚した、新型コロナウィルスと3月のパンデミック。毎日報道されています。だいたいは最高人数更新のニュースなのですが、最高で無い場合は過去の曜日の最高や、大阪が最高だの、煽っているようにしか見えません。
2017年の日本のがん死亡者数:373,584人、(https://ganjoho.jp/reg_stat/statistics/stat/summary.html)
心筋梗塞などの心疾患死亡者数は204,837人(http://www.seikatsusyukanbyo.com/statistics/2019/009997.php#:~:text=%E5%8E%9A%E7%94%9F%E5%8A%B4%E5%83%8D%E7%9C%81%E7%99%BA%E8%A1%A8%E3%81%AE%E3%80%8C%E4%BA%BA%E5%8F%A3,%E3%81%AB%E5%A4%9A%E3%81%84%E6%95

元記事を表示

apt-getを使用してnginx python postgresqlをinstallする

#前提
ubuntu (もしくは debian ?)

#コマンド
“`
sudo apt-get update

sudo apt-get install nginx python3-pip python3-dev libpq-dev postgresql postgresql-contrib
“`

以上

元記事を表示

【備忘録】タイタニック号のデータを完璧に前処理したい ~Age篇~

[最初に投稿した記事](https://qiita.com/hamco/items/ae0de188adfa240832fb)は途中で体力が尽きて最後まで書けなかったので、リベンジです。
ちょっと分かりやすいように編集してます。
## 目的
タイタニック号のAgeの欠損値が多いので、全部埋めたら精度上がるんじゃないかな
と思いました。

## 与えられたデータ
今回インポートしたライブラリは下記のとおりです。

“`python
import pandas as pd
from sklearn.model_selection import train_test_split as tts
from sklearn.ensemble import RandomForestClassifier as RFC
from sklearn.ensemble import RandomForestRegressor as RFR
“`
いつも長い名前は自分勝手に省略してしまうので、途中でわけわからんのが出てきたら
そういうことなんだなと思ってください。

元のデータをDataFrameに入れると

元記事を表示

AmazonLinux2でPython3環境構築

AmazonLinux2には標準でPython2系がインストール済みですが、Python3を入れたい場合に共存してコマンドが面倒なので標準でPython3を使うように変更する手順です。
一旦python自体の仮想環境(pyenv)については記載していません。

# 環境情報

“`shell-session:使用AMI-id,OS,カーネルバージョン
$ /opt/aws/bin/ec2-metadata
ami-id: ami-00f045aed21a55240

$ cat /etc/system-release
Amazon Linux 2

$ uname -a
Linux hogehuga.ap-northeast-1.compute.internal 4.14.209-160.335.amzn2.x86_64 #1 SMP Wed Dec 2 23:31:46 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
“`

“`shell-session:作業前python環境
$ python -V
Python 2.7.18

$ pip

元記事を表示

wxPythonのメッセージボックス – wx.MessageBox

あー最近雪がめちゃくちゃ降ってて雪かきが大変なんですよ…

今までは`wx.Frame`をメインにやってきましたが、今回は`wx.MessageBox`をやっていきます。

##メッセージボックスとは?
メッセージボックスというのは、Tkinterでもありますよね?
エラーを表示するダイアログだったり、警告を表示するダイアログだったり、
情報を表示するダイアログだったり、保存するかしないかを確認するダイアログだったり…

簡単なコードで、色々とできちゃいます。

##メッセージボックスを表示させてみる

これからいくつかのコードを言っていくのですが、その前にそれをどこに書けばいいのか
確認します。

“`python
import wx
app = wx.App()
#ここにコードを入力
“`
はい。『ここにコードを入力』の部分です。

情報アイコン

![スクリーンショット (531).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922970/dbf47983-eba7-eb5a-806d

元記事を表示

python + ロト6

# 概要
サイコロを6万回を回すとそれぞれ1万に近くなる。
これをロト6に適用してロト6をあてる確率を少し上げてみよう。

# 構造
1.mizuho銀行のWEBからロト6DBを引っ張る。(requests利用)
2.DBはNUMPYを利用しローカルで管理する
3.ロト番号1~43までの数字がでた頻度を計算する。
4.頻度数1番目、2番目は取り除く(choose(flist,ign,topn,topc)で調節可能)
5.頻度数上位17まで数字をランダムで2個、以降からは4個を抽出する。
6.履歴はローカルでpast.txtで管理

“`
from bs4 import BeautifulSoup
import requests
from urllib.request import urlopen
import re
import pandas as pd
import numpy as np

def oldurl():
ulist=[]
for a in range(60001,60442,20):
url=’https://www.mizuh

元記事を表示

Pythonでネストが深くなって読みにくい

# Pythonでネストが深くなって読みにくい
## はじめに
Pythonをかいていて、「ネストが深くて読みにくいなぁ」ってよく思うんですよね。
具体的には以下のような場合です。

“`python

for group in groups:
for member in group.members:
for article in member.articles:
for tag in article.tags:
“””
処理いろいろ
“””
“`

もしこれが以下のようになったらステキじゃないですか?

“`python

for group, member, article, tag in func(groups):
“””
処理いろいろ
“””
“`

でも「そもそもfor文ってどうやったら自分で制御できるの?」って疑問もあると思うのでそこから解説していきたいとおもいます。

## 実装
Pythonを

元記事を表示

kaggle の Courses を読む —Intermediate Machine Learning 5

# クリスマスが今年もやってきた
こんにちは! まはらせないきと申します!
クリスマスですね。楽しい楽しいクリスマスです。ええ、楽しいですよ。
この時期はいつもお菓子を作っていましたが、今年は送る相手がいませんね。
最近見つけたこの方に惚れました。
https://www.youtube.com/channel/UCqzebzc9N19X3MVFnuFYtRw

それでは今回もよろしくお願いします!

___
__Intermediate Machine Learning__ では、機械学習をより深掘っていきます

~Intermediate Machine Learning の流れ~
1. 導入
2. 欠損値
3. カテゴリー変数
4. パイプライン
5. 交差検証
6. XGBoost
7. データの漏洩

今回は __5__ の内容です!

# 機械学習は対話的
機械学習は対話的な作業です。どの説明変数を用いるか、どのモデルを使うか、そのモデルにどんな引数を渡すか、などなど。検証によってモデルの質を計測しながら、これらを考えていきます。

しかしこれらの方法には欠点があります。5

元記事を表示

arXivのトレンドワードをSlack投稿!(論文サーチをもっと楽に!!)

# はじめに
 みなさん、最近のトレンドを論文から知りたいな~というときどうしていますか?
論文を片っ端から読み漁ることができたらそれが理想ですが、論文数は毎日大量に発表されるし、どれを追えばいいのか……
**ということで、arXivで発表されている最近の論文からキーワードを分析し、トレンドワードをslackに投稿する機能**を作ってみました!

#完成例(このようにSlackに投稿します!)
上から順にトレンドワードベスト15を投稿しています!(CS.AIカテゴリー内)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/474340/a13ce72d-2d80-c115-f2a2-49f64dbf8bfc.png)

#作成の流れ
1. arXiv API で論文情報を取得
2. TF-IDFを用い、トレンドワードを取得
3. IFTTTを用いて、webhooks経由でslackへ投稿
今回は、カテゴリー「CS(Computer Science)」の中でtf-idfで取得した上位の

元記事を表示

Dockerで立ち上げたPostgresにSAMでbuildしたpsycopg2からクエリを実行する方法

#やりたかったこと
①AWS S3内に保存されているxmlファイルを読み込み、必要なデータ取得
②pythonプログラムからdockerコンテナ内のPostgresに接続 **←躓いたパート1**
③psycopg2を用いて、クエリ実行してデータ取得 **←躓いたパート2**
④データ加工後、クエリ実行してPostgresに保存

#躓いたパート1の問題点
最初Pythonのファイルには下記のように記述していた

“`python:app.py
# DB接続情報
postgre_user_name = “admin”
postgre_user_password = “password”
postgre_server_port = 5432
postgre_database_name = “hugahoge”

connection = psycopg2.connect(f”host=localhost port={postgre_server_port} dbname={postgre_database_name} user={postgr

元記事を表示

MoviePyを使ってPythonで動画編集をする

#前置き
この記事は[MoviePyの公式ドキュメント](https://zulko.github.io/moviepy/index.html)を簡単にまとめたものです。本格的にMoviePyを使いこなしたい人はおやつでもつまみながら**公式ドキュメント全体をじっくり読むことをおすすめします**。英語ですが、Google翻訳を使いつつ、難解な部分はDeepLを使用しながら読み進めば大丈夫なはずです。[Github](https://github.com/Zulko/moviepy)も読んでおくと良いかもしれません。この記事はとりあえず全体を理解したい、とにかく今すぐ使いたいという人向けです。誤り、情報の更新などがありましたら遠慮なくお教え下さい。

#MoviePyとは?
Pythonで動画編集ができるライブラリです。Pythonでは他にも動画編集を行う手段があります。画像編集ライブラリopenCVをつかった手法、ffmpegをコマンドラインで操作する手法などです。場合によってはこれらを検討するのもアリです。
YouTubeにMoviePyで[具体的にどのようなことができるのかのサンプ

元記事を表示

Python Conference 2020 アジア制覇した男がおすすめするPyCon発表動画12選

Classiアドベントカレンダー24日目です。ClassiデータAI部の平田です。

2018年と2019年の24日は、毎年、新宿のカレーについての調査結果[【2018年度】進撃の壁外調査結果報告@新宿カレー区](https://qiita.com/tetsuya0617/items/73fc69bcf1fc889097af)と[【2019年度】進撃の壁外調査結果報告@新宿カレー区](https://qiita.com/tetsuya0617/items/5ada9d22b7e1d2ccaed9)の記事を書いてきました。

今年は、コロナの影響で外出自粛規制により残念ながら壁外へ飛び出すことができませんでした。しかし、この状況だからこそ、インターネットの世界を上手く使うチャンスだろうと。
そこで、各国でカンファレンスがオンライン開催になったことを知り、それなら世界のカンファレンスに**Speaker**として出場していくぜっ!

世界各国で開催されている[Python Conference 2020](https://www.python.org/events/python-even

元記事を表示

【ロジスティック回帰】statsmodelsでホールドアウト検証を実装する

# はじめに
pythonでは,ロジスティック回帰モデルを利用できるライブラリとして主にscikit-learnとstatsmodelsが用いられます.statsmodelsには係数の有意差検定を自動でしてくれるといったscikit-learnにはない利点がある一方で,代表的なモデルの評価方法であるホールドアウト法や交差検証法に対応していません.そこで今回は,statsmodelsでホールドアウト法を実装するためのコードを作成してみます.

statsmodelsを用いたk分割交差検証の実装は[こちら](https://qiita.com/takato0884/items/36b5212de8012e408fd9)をご覧ください.
# ライブラリのインストール
“`python:sample.ipynb
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
import statsmodels.api as sm
“`
#データのインストールと前処理

元記事を表示

pythonインタプリタ起動時の決まった処理の追加

# 環境
– windows 10 pro
– python 3.9.0

# 目的
pythonのインタプリタで起動するたびimport文を書くのが面倒であったため
起動と同時に自動でインポートをしてくれる設定の方法を調べました。

# やりかた
homeのディレクトリ(`C:\Users\\`)とかに以下のようなファイルを作成します

“`python:.pythonstartup.py
from datetime import datetime
date = datetime.now()
“`
とか記述しておいて
環境変数に以下を設定

“`
setx PYTHONSTARTUP C:\Users\\.pythonstartup.py
“`

あとは、コマンドプロンプトに`python`と打つだけでファイルの内容が実行されます。

“`
>python
Python 3.9.0 (tags/v3.9.0:9cf6752, Oct 5 2020, 15:34:40) [MSC v.1927 64 bit (AMD64)] on w

元記事を表示

OTHERカテゴリの最新記事