Python関連のことを調べてみた2020年11月15日

Python関連のことを調べてみた2020年11月15日

Kaggle / Titanic のチュートリアルの RandomForestClassifier のパラメータを調べる

# はじめに
Kaggle / Titanic のチュートリアルでは `RandomForestClassifier()` で学習している. このパラメータを調整して, 学習精度が向上するか確認する.

# データの準備
“`python
import numpy as np
import pandas as pd
import seaborn
import matplotlib.pyplot as plt

train_data = pd.read_csv(“../train.csv”)

from sklearn.model_selection import train_test_split

train_data_orig = train_data
train_data, cv_data = train_test_split(train_data_orig, test_size=0.3, random_state=1)
“`
`train_test_split` を使って, train : cv = 7 : 3 にデータを分割した (cv ; cross validation

元記事を表示

plotly express が使えるシチュエーションまとめ【matplotlibより使えるときはどんなとき?】

## はじめに

グラフの描画といえばmatplotlib + serbornがメジャーですよね。
これらを超える**ポテンシャルを秘めたのがインタラクティブなグラフが作成可能なplotly express。**
plotly expressを使うとmatplotlib + seabornよりも便利な点に焦点を当てて紹介したいと思います。

plotly express、あまり癖がない印象です。**plotlyと比較して行数少なくグラフがプロットでき、matplotlibを使ったことがある方はあまり違和感なく導入できると思います。**

個人的に考える**plotly expressが役に立つシーン**はこんな感じです。
– ヒストグラム書いたけど右に裾が広すぎていまいちよくわからん…かといって右裾だけを拡大したグラフ書くのもなんかかっこ悪い。
– 積み上げ棒グラフ作りたいけど数が少ないやつ潰れてしまう。てかそもそもseabornで積み上げグラフめんどい。
– 散布図で外れているデータを確認したいけど、どのデータが外れているデータなのか探すのが面倒。
– ペアプロットしたけど説明変

元記事を表示

Mask RCNN Object Measurement Package (Mask RCNNで物体径計測)

# About this ROS package こういうの作った
RealSenseのようなRGBDセンサを用いて、深層学習により複数の任意のオブジェクトを区別して推測し、その画像上の重心を通る最大・最小の径を算出する。結果はROSトピック(mrcnn/result)として取得可。
https://github.com/moriitkys/mrcnn_measurement
参考になったらLGTMお願いします。

こちらはスナップエンドウの大きさを計測する様子。以下で示すボルトや丸太も、自分で学習させた。学習方法についてはこちら( https://github.com/matterport/Mask_RCNN )を参考に。(要望があれば解説の記事書く予定)また、スナップエンドウのrosbagはmrcnn_measurementでダウンロード可。
snappeas1_short2.gifKaggle / Titanic のチュートリアルをじっくり眺める

# はじめに
[Kaggle の Titanic](https://www.kaggle.com/c/titanic) の [チュートリアル](https://www.kaggle.com/alexisbcook/titanic-tutorial) にトライした. コピー & ペーストでランダムフォレストを使った予測ができたのだが, その次のステップに移る前に, チュートリアルで何をしていたのかを確認した.
Kaggle の Titanic の解説文書はネットにたくさん見つけられるが, ここではチュートリアルに沿って私が考えたことなどをまとめておく.

# データを確認する
## head()
[チュートリアル](https://www.kaggle.com/alexisbcook/titanic-tutorial) では, データを読み込んだ後に `head()` を使ってデータを確認している.

“`python
train_data.head()
“`

![head()](https://github.com/satomshr/kaggle_titanic/blob/mai

元記事を表示

pymysqlのLIKEのパーセント

python3.x

ライブラリpymysqlを使って
connection = pymysql.connect(・・・)
部分一致のLIKE文を動かしたかったのだが

“`
with connection.cursor() as cursor:
cursor.execute(“SELECT c1 FROM ttt WHERE c2 LIKE ‘abc%'”, ())
ary = cursor.fetchall()
“`

と書くと

“`
TypeError: not enough arguments for format string
“`

となる。
pymysqlに%を無視してもらうために
%を%でエスケープしないとダメらしい。

“`
with connection.cursor() as cursor:
cursor.execute(“SELECT c1 FROM ttt WHERE c2 LIKE ‘abc%%'”, ())
ary = cursor.fetchall()
“`

で動いた。

元記事を表示

ロジスティック回帰の理論と実装を徹底解説してみた

#はじめに
今回の記事では、tensorflowとsckit-learnを用いてロジスティック回帰を実装していきます。

前回の記事で線形回帰についてまとめたので、よろしければ以下の記事もご覧ください。

[Pythonでscikit-learnとtensorflowとkeras用いて重回帰分析をしてみる](https://qiita.com/renesisu727/items/f1ab78cbe49c1fb178fc)

今回用いるのはirisデータセットです。

##iris(アヤメ)データセットについて
irisデータは、アヤメという花の品種のデータです。

アヤメの品種である`Setosa`、`Virginica`、`Virginica`の3品種に関するデータが50個ずつ、全部で150個のデータです。

実際に中身を見ていきましょう。

“`.py
from sklearn.datasets import load_iris
import pandas as pd

iris = load_iris()
iris_df = pd.DataFrame(iris.data, c

元記事を表示

麻雀の和了判定アルゴリズム

# 麻雀の和了判定アルゴリズム
14枚の手牌の和了が完成しているかを検査します、向聴数を求めるアルゴリズムではありません。

## データ形式
牌のデータにはONE-HOTを使用します、ONE-HOT配列を行方向に総和を取ると頭、刻子の判定が楽なのでONE-HOTを選択しました

“` python
# ONE-HOT表現の手牌
[
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0

元記事を表示

【python】【pytchat】でyoutubeLiveのコメントを取得してみる!

# ライブのコメントを全部みてみる
橘ひなのさん(vtuber)の全ての動画のライブコメントを取得しました。
[./Thinano/data/0IFEp1Bt3qw.json](https://raw.githubusercontent.com/1k-ct/Thinano/main/comment/0IFEp1Bt3qw.json)をみてください。
データは、https://github.com/1k-ct/Thinano 全部ここにあります。

nameがコメントした人の名前、messageがコメントです。  
:_naa::_noo: ← これは、メンバーの人だけが使えるスタンプです。  

– 他の動画のコメントを見る
– [ここ](https://github.com/1k-ct/Thinano)をクリックする。
– commentをクリックする。
– 見たいファイルを選ぶ
https://www.youtube.com/watch?v=oQmgxXbT8OE  は, oQmgxXbT8OE.jsonこんな感じにしてます  
– View raw

元記事を表示

Python 自動デスクトップクリック

## 背景
自動でクリックしたいときってありますよね。

このプログラムはクリックしたい画像や入力したい項目をスクショしておくだけで、自動でクリックや入力をしてくれるように作りました。

スクショするときは、画像をリサイズしないように気を付けてください。

細かい説明はごめんなさい?
あと汚いコードでごめんなさい?
お好きなように、皆さん改造してください。
誰かがこちらをGUI化してくれることを祈ります(涙)

ソフトウェアエンジニアなら、ソフトウェアの力を借りて楽に生きよう~。

## ターゲット画像の遷移 3段階
1. デスクトップからターゲットを探す -> クリック
2. デスクトップからターゲットを探す -> クリック
3. デスクトップからターゲットを探す -> “Qiita”と入力
![X_Dammy_5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/503403/8a7390b4-624f-64a1-966e-6908382043bf.png)

## 実行結果
![fl7a5-yoz3

元記事を表示

【Python】サポートベクタマシン(SVM)を使って画素値からりんごと梨を分類

#1. 概要
今回は機械学習の一種、サポートベクタマシン(英:Support Vector Machine, SVM)を使用してりんごと梨の分類を行いました。りんご、梨それぞれ10個の画像の画素値(平均値)を用いて2成分でSVMにかけることで分類出来るか調査しました。
ちなみに、SVMというのは全てのデータポイントではなく、境界付近の一部のデータポイントをピックアップして、境界を決定する手法になります。そして、その境界付近のデータポイントをサポートベクタと呼んでいます。

#2. 用意するデータ
事前にりんごと梨のRGB画素値の平均値を取得します。
参考としてりんごの画素値の平均値のcsvファイルは下のapple.csvを使用しました。opencvを使用しているので並び順がBGRとなっています。りんごだけあって、Redの画素値が高いですね。このcsvファイルに加えて梨のcsvファイルも予め作成しておきます。

“`apple.csv
,blue,green,red
0,39.88469583593901,28.743374377331637,137.23369201906283
1,

元記事を表示

[Python] プログラミング未経験が1つのツールを作るまでにやったこと

## はじめに
現在エンジニア歴2年目ですが、1年目の時に
「こういうツールがあったらな」という要望から実際にツールを作りました。
作成したツールは[こちら](https://github.com/ap-communications/NEEDLEWORK-ScenarioWriter)です。
当時のままとなっていますので、未知な不具合やリファクタリングの余地はあると思います。
これから成果物を作ろうと考えている未経験者に、
当時の自分が未経験ながらどのようにツールを作っていったかを
知ってもらうために今回記事に残そうと思いました。
未経験者の開発への道の手助けとなれば嬉しいです。

## ツールを作るまでの過程
* 開発前にやったこと
* ゴールを決める
* 試しにcsvを作成してみる
* WBSの作成および確認
* 使用するプログラミング言語の選定
* ツールの利用方法の決定
* アルゴリズムの決定
* プログラミング環境の準備
* 開発中にやったこと
* WBSの見直し
* 動作確認
* テストコード

元記事を表示

pythonで、定義された辞書に指定したキーが存在するかを調べた際のメモ

以下の通りすればよい

“`python:test.py
mydict = {
“item1″:”aaa”,
“item2”: {
“item21”: “ddd”,
}
}

if “item1” in mydict:
print(“item1 exist!”)
else:
print(“item1 not exist!”)

if “item2” in mydict:
print(“item2 exist!”)

teststring = “item2”
testmatrix = mydict[teststring]
if “item21” in testmatrix:
print(“item21 exist!”)
else:
print(“item21 not exist!”)

if “item22” in testmatrix:
print(“item22 exist!”)
else:
pr

元記事を表示

macOS で pandas をインポートしようとしたら No module named ‘_bz2’ というエラーが出る

# 環境
– macOS Big Sur バージョン 11.0.1
– pyenv で python をインストール

# 問題
python で何気なく pandas をインポートしようとしたところ、

“`python
import pandas as pd
“`

次のようなエラーが発生しました。

“`
Traceback (most recent call last):
…(中略)
ImportError: No module named ‘_bz2’
“`

# 原因
pyenv で python をインストールする際に、コンパイラが bzip2 というパッケージを認識していなかったために、python の bz2 ライブラリがインストールされず不完全な状態になっていると予想できます。

なので、pyenv でインストールした時に次のような warning が表示されていたことでしょう。

“`
$ pyenv install 3.9.0

…(中略)
WARNING: The Python bz2 extension was not compiled

元記事を表示

pythonをインストールしてるのにimportエラー

VScodeでpythonをインストールしているのにimportエラーが起きている。

![スクリーンショット 2020-11-14 22.52.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/849608/5a0260a6-b622-133a-5de1-fc30b64b018c.png)

#解決策

簡単な話、pythonをアンインストールしたら改善した。

これはおそらくdockerが原因だと思われる。

ようはdocker上でpythonをインストールしているにも関わらずVScode側にもPythonが存在しているため、干渉しあいエラーが引き起こされているのではないか。

少し調べてみると存在しているPythonのバージョンが違うとこのようなエラーが起きてしまうらしい。

dockerを使うさいにはご注意を。

元記事を表示

OptunaでLightGBMのパラメータ調整

※Colabで動くことを確認しました.

#参考

Optuna の拡張機能 LightGBM Tuner によるハイパーパラメータ自動最適化

#Optunaのインストール
“`
pip install optuna
“`

#パラメータ探索

“`
import optuna

def objective(trial):
#x_train, y_train, x_test, y_testを準備

dtrain = lgb.Dataset(x_train, label=y_train)

param = {
‘objective’: ‘binary’,
‘metric’: ‘binary_logloss’,
‘lambda_l1’: trial.suggest_loguniform(‘lambda_l1’, 1e-8, 10.0),
‘lambda_l2’: trial.suggest_log

元記事を表示

2020年11月版 データ分析試験 合格体験記

# はじめに

2020年10月の転職に伴ってデータ分析に入門したのもあり、体系的に学びたいと思い、**Python3エンジニア認定データ分析試験**に取り組みました。
比較的新しい試験で、Web上にあった情報と少し違うこともあったので、体験を共有させてもらいます。これから受験される方の、一助になれば嬉しいです。

# 僕のバックボーン

この記事を書いている、僕自身のことも書いておきます。
こういう人間の感想なんだなーと思ってもらえれば良いかと思います。
**地頭の良い人が言う「簡単」ほど、あてにならないものはありません。笑**

#### コーディングの技術

– ITエンジニア歴2年
– キャリアのほとんどが、Golangを使ったWeb系のバックエンド開発
– Python歴は、転職してからの直近1ヶ月程度

#### 数学的な知識

– 工業高校卒
– 普通科高校とカリキュラムが違うので、そもそも習わないことがあったりする。
– Fラン大学中退 (非情報系学部)
– おそらく、**数学的な教養はかなり乏しい方**かと思われます。

#### その他

– 大阪在住

元記事を表示

selfの持つ意味

selfがないと、、、ローカル変数(関数内部で初期化される変数)と区別ができなくなる。

“`
class Sample:
num = 100
def show_num(self):
num = 200
print(self.num)
print(num)

a= Sample()
a.show_num()
“`
出力は以下の通り

“`
>>>100
>>>200
“`

print(self.num)とprint(num)でうまく区別されているということになります。

元記事を表示

Import Error: libffi.so.6: cannot open shared object file: No such file or directory

# TL;DR
ファイル`libffi.so.6`がimportできなかったことにより、Jupyter notebookの起動に失敗したときの解決法です。私の環境では`pyenv`でpythonのversion管理を行っていたので、同様の管理をしている方向けです。

## Error
“`
% jupyter notebook
Import Error: libffi.so.6: cannot open shared object file: No such file or directory
“`

## 解決法
こちら[^1]より、

“`
% pyenv version
i.j.k(set by $HOME/.pyenv/versions/i.j.k)
% pyenv install i.j.k
Installed Python-i.j.k to $HOME/.pyenv/versions/i.j.k
“`
と使用していたversionのPythonをインストールし直せば良いです。これで起動できるようになっている筈です。

[^1]: [Pipenv install fa

元記事を表示

[Python]基本文法を個人的にまとめた件について。

Pythonについて、理解を深めるためにまとめる。
随時更新していく。

参考文献
☆国本大悟/須藤秋良『スッキリわかるPython入門』

##流れ
#####①ソースコードの作成
ソースファイルの拡張子は`「.py」`

#####②実行
・`Pythonインタプリタ`(:ソフトウェア)によって
 ソースコードを`マシン語`(:コンピュータが理解できる言葉)に変換する
・文法上誤りがあれば`SyntaxError(構文エラー)`が表示される
・`例外(Exception)`(:実行時のエラー)時は実行が中止になる

##式
#####【算術演算子】
`//`:割り算の商(答えは整数)
`**`:べき乗
`*`:文字列の反復(`文字列 * 数値`もしくは`数値 * 文字列`)

[優先順位]
高:`**`
中:`*`、`/`、`%`
低:`+`、`-`

print(1 + 1 * 7) –8
print((1 + 1) * 7) –14、丸かっこで優先度を上げることが可能

#####【エスケープシーケンス】
print(‘おはよう\n諸君\\’)

元記事を表示

【Python】pythonで簡単に機械学習入門(SVM)

#はじめに
機械学習に関する入門サイト見ていると、難しいことが書いてあったりして、知識0の人がとっつきにくい印象があります。
まあテーマとして確かに難しいのでしょうがないですが….
「数学や機械学習の知識が0でも、pythonの知識さえあれば誰でも実装できる」というのを目標に記事を書いていきたいと思います。
今回の記事では難しいことは説明せず、とりあえず機械学習というものに触れてみるというスタンスで、進めていきます。
#対象者
・pythonがある程度わかる
・機械学習に興味があるけど、何も知らない
・大学の授業で概要は学んだけど、実際にどう実装すればいいかわからない
#環境
python 3.8.5
scikit-learn 0.231
#まずはインストール
pythonのバージョンが3.8.5以下でないとでないとインストールできないようです。

“`
pip install scikit-learn
“`

csvファイルの読み込みにnumpyを使うのでインストール済みでない方はインストールしてください。

“`
pip install numpy
“`

#用語解説

元記事を表示

OTHERカテゴリの最新記事