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

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

ランダムフォレスト(実装・パラメーターまとめ)

#はじめに
ランダムフォレストの実装及びパラメータのまとめの記事です。

#ランダムフォレストとは
複数の決定木を組み合わせて予測性能を高くするモデル。

※決定木:機械学習の手法の1つで、Yes or Noでデータを分けて答えを出すモデル

学習の流れは以下のとおり

①複数の決定木モデルを用意する
②それぞれの決定木の学習データは、もとの学習データから重複を許して同じ数をランダムに抽出する(決定木ごとに微妙に学習データを変えることで学習のバリエーションを増やす)
③それそれの決定木の予測から最終的な答えを出す。
分類モデル → 多数決
回帰モデル → 平均

# ランダムフォレストの特徴

ランダムフォレストは、アンサンブル学習のバギングに分類される手法になる。

※アンサンブル学習:以下を参照
https://qiita.com/hara_tatsu/items/336f9fff08b9743dc1d2

##バギング
異なるデータを抽出(ブートストラップ法)して、複数の異なるモデル(弱学習器)を作成する。その後、作成した複数のモデルの平均を最終的なモデルとする。

※ブートスト

元記事を表示

typingを用いたdefaultdictの制限

# はじめに

[typingを用いたdefaultdict](https://docs.python.org/ja/3/library/typing.html#typing.DefaultDict)の公式ドキュメントがあります.

しかし,使い方は詳しく説明されていないため,まとめようと思います.

# defualtdict

defaultdictは,`callable`,かつ値を返すものを指定します.
例えば以下のようなものです.

“`python
from collections import defaultdict

d1 = defaultdict(int)
d2 = defaultdict(lambda: ‘hello’)
“`

`int`はCallableのため,指定できます.
そして,もしKeyがなければ,これらのCallableが呼ばれて初期値となります.

よって,`d1[‘hello’]`とすると,この時点でKeyが存在しなければ`int()`が実行されて0が入ります.

# typingを用いたdefaultdict

defaultdictは,V

元記事を表示

PCでもSpotifyのスリープタイマーがほしい

# はじめに

寝る前にごろ寝PCにてSpotifyで音楽をかけて寝ています。しかし、朝まで鳴りっぱなしなのが気になり、PCでSpotifyのスリープタイマーがあるか調べてみましたが、iPhoneやAndroidの記事しかなく、PC用を見つけられなかったためSpotify Web APIをPythonで使えるライブラリspotipyを使って作ってみることにしました。

# 環境

“`
$ sw_vers
ProductName: macOS
ProductVersion: 11.1
BuildVersion: 20C69
“`
– python 3.8.5
– spotipy 2.16.1

# クライアント登録

1. [Spotify for Developer](https://developer.spotify.com/dashboard/applications)にアクセス
2. DASHBOARD
3. CREA

元記事を表示

PythonでDIフレームワークを使う意味

# はじめに
PythonのDIフレームワーク`Dependency Injector`のドキュメントが示唆に富んでいたので、多くの人にPythonにおけるDIの良さを知ってもらうために、その一部を訳しました。

[Dependency Injectorのドキュメント](https://python-dependency-injector.ets-labs.org/introduction/di_in_python.html)

# PythonにおけるDI(依存性の注入)と制御の逆転

もともとDIパターンは、Javaのような静的型付け言語で人気がありました。DIは、制御の逆転を実現するのに役立つ原則です。DIフレームワークは、静的型付けを使用して言語の柔軟性を大幅に向上させることができます。静的型付けを使用する言語のDIレームワークの実装はすぐにできるものではありません。うまくやるのはかなり複雑なことになるでしょう。そして時間がかかります。

Pythonは、動的型付けを使用したインタープリター言語です。PythonにおけるDIはJavaのようにうまくはいかないという意見があります

元記事を表示

ETFの価格を予測してみた

こんにちは。
最近株価予測に挑戦しております。
まだまだ修行中の身ですが、アウトプットしていきたいと思います。
今回は、バンガード・S&P500 ETF(VOO)の予測をしてみたいと思います。
データは下記のURLでゲットできますが、Investing.comへのログインが必要です。
https://www.investing.com/etfs/vanguard-s-p-500-historical-data

“`
#必要なライブラリのインポート
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import warnings
import datetime
import statsmodels.api as sm
import itertools

import warnings
warnings.simplefilter(‘ignore’)
“`

続いて、データの読み込みと下準備をします。

“`
#データの読み込みとインデックスをto_dat

元記事を表示

Pythonで文字列を検索

Pythonで文字列を検索して任意の文字列を含むか判定したり、その位置を取得する方法について。標準ライブラリのreモジュールを使うと正規表現でより柔軟な処理が可能。

### 任意の文字列を含むかの判定
in演算子を使う。
含まれていると`True`、含まれていないと`False`を返す。

“`python
text = “I like TWICE”

print(“TWICE” in text)
#True

print(“twice” in text)
#False

print(‘TWICE’ in text and ‘I’ in text)
# True
“`

### 任意の文字列の位置を取得
`find()`で文字列中の任意の文字列の位置を取得

第一引数に指定した文字列が呼び出し元の文字列に含まれている場合はその最初の文字の位置、含まれていない場合は **-1** が返される。

“`python
text = “I like TWICE”

print(s.find(‘TWICE’))
# 7

print(s.find(‘XXX’))
# -1

元記事を表示

全力回避フラグちゃん!の動画の再生数と評価/コメント数をグラフにしたらどうなるのか?【Python】【グラフ化】

# はじめに

今回は再生回数と評価/コメント数を同時にプロットして,どのような傾向があるかを調査・考察してみました.結果として,当たり前だけど面白い結果が得られたので記事にしてみました.
前回,前々回の記事はこちら↓↓

– [「全力回避フラグちゃん!」チャンネルの動画をグラフ化するとどうなるのか?【Python】【グラフ化】](https://qiita.com/mypsychology0/items/7f5dace26c4c375754e5)
– [全力回避フラグちゃん! の動画再生数の分布を調べてみた【Python】【グラフ化】](https://qiita.com/mypsychology0/items/1844f675717025970325)

## 注意事項
本記事で実施していることは動画から得られる情報をプロットしただけです.
また,2021/1/8 19:00時点で記録しているため,現在の情報と異なる可能性があることと,
目視で記録していたため情報に誤りがある場合がございます.ご了承ください.

# 用いたデータセット/手法
YouTube Data API v3

元記事を表示

[Blender×Python] オリジナルオブジェクトのつくりかた

#目次

0.平面を生成する
1.立方体を生成する
2.四角錐を生成する
3.多角形を生成する
4.モディファイアを使う
5.ランダムな形状のメッシュを生成する
6.波状のメッシュを生成する

#0.平面を生成する

![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654004/b36738d6-0eb4-66be-245d-a7cca51d4790.png)

“`.py
import bpy

#平面を形成する頂点と面を定義する
verts = [(0,0,0),(0,5,0),(5,5,0),(5,0,0)]
faces = [(0,1,2,3)]

#メッシュを定義する
mesh = bpy.data.meshes.new(“Plane_mesh”)
#頂点と面のデータからメッシュを生成する
mesh.from_pydata(verts,[],faces)
mesh.update(calc_edges=True)

#メッシュのデータからオブジェクトを定義する
obj = bp

元記事を表示

yukicoder contest 277 参戦記

# yukicoder contest 277 参戦記

## [A 1329 Square Sqsq](https://yukicoder.me/problems/no/1329)

Python だったら考察しなくても正面から踏み抜けるだろうと踏んで流したら通ってしまった(笑). Python を相手にするには 10107 くらい必要なようである.

“`python
from math import isqrt

N = int(input())

print(len(str(isqrt(N))))
“`

## [B 1330 Multiply or Divide](https://yukicoder.me/problems/no/1330)

コンテスト中は AC したものの、コンテスト後の追加テストによるリジャッジで落とされてしまった.

元記事を表示

Effective Python 学習備忘録 7日目 【7/100】

## はじめに
Twitterで一時期流行していた 100 Days Of Code なるものを先日知りました。本記事は、初学者である私が100日の学習を通してどの程度成長できるか記録を残すこと、アウトプットすることを目的とします。誤っている点、読みにくい点多々あると思います。ご指摘いただけると幸いです!

## 今回学習する教材

– [Effective Python](https://www.amazon.co.jp/Effective-Python-%E2%80%95Python%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E6%94%B9%E8%89%AF%E3%81%99%E3%82%8B59%E9%A0%85%E7%9B%AE-Brett-Slatkin/dp/4873117569/ref=sr_1_3?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&dchild=1&keywords=Effective+python&qid=1609408832&sr=8-3

元記事を表示

selenium user data directory is already in use, please specify a unique value

## 解決方法
↓こちら
https://qiita.com/Hidenatsu/items/e43ba04b4b5f710784e6

元記事を表示

Rosetta2を使わないApple Silicon MacのHomebrew環境構築(2020/01/08更新※gcc入った)

はじめに
——-
まだ出て間もないARM Mac向けにビルドされたプログラムはあまり多くないです。
かといってRosettaでIntel向けバイナリを動かしてると今後Appleアーキテクチャバイナリが出回り始めた時にどれがIntelバイナリなのかわからなくなって困りそう。
あとIntel版のdependsライブラリ入れててビルド通らねえとかありそう。

なのでRosetta2は使わずに環境を構築しました。
なお、MacPortsはかつてよく環境を破壊された記憶が鮮明なのでHomebrewを使います。

Command Line Toolsのインストール
——————————
“`bash
% sudo xcodebuild -license
# Qキーで規約は飛ばせる。”agree”と入力

% xcode-select –install
“`

でインストールしてください。

Homebrewのインストール
——————–
いつものコマンドをターミナルにコピペすると弾かれます。

“`bash
%

元記事を表示

学生証を鍵にしてみた?!

##はじめに
 はじめまして.今回の記事は合同ブログ3号目です.なんの合同ブログかといいますと,セキュリティキャンプのグループワークで”控え目関西人”として合同ブログを書くことになり,その3人目という感じです.今までの記事はこちらです.

##概要
 大学3回生くらいになるとゼミ室に配属されると思いますが,そのゼミ室の鍵を物理キーにするのは信頼性は高いが,とても不便ですよね…情報系の学生なら自分で改善すればいいじゃん!ということで,信頼性を確保しつつ,利便性を上げます.利便性向上として学生が常に携帯しているだろう”学生証”を鍵にすることにしました.学生証の解析は先人がやってくくださっているので,ハードとソフトのシステムの構築だけです.

##環境

+ Raspberry Pi3 Model B (OS:Raspbian 32bit)
+ python 3.*
+ [マイクロサーボ9g SG-90](https://akizukidenshi.com/catalog

元記事を表示

【初心者向け】LambdaでAlexaカスタムスキルと連携する関数を作成

#Lambdaで関数を作成
##AWS Lamdaで関数の作成手順

前の記事:[Alexaでカスタムスキルを作成する](https://qiita.com/kurisaka/items/24f5dfe54d718e33c1c2)

###AWSのサービス一覧から「Lambda」を選択
![1-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163917/8b1086ea-874c-e37a-2791-e3d79805ba05.png)

###Lambdaトップ画面より「関数の作成」を押下
![1-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163917/1dd290a0-44b2-bc01-ecd7-b804ca331963.png)

###関数の基本情報を設定
– 「一から作成」を選択
– 「関数名」を入力 →今回は”sampleFunction”としました
– 「ランタイム」では「Python3

元記事を表示

極座標で等高線図を作成(Contour maps in polar coordinate)

# はじめに
 Pythonで極座標形式の等高線図を描く方法を紹介します.[matplotlibの公式ドキュメント](https://matplotlib.org/api/_as_gen/matplotlib.pyplot.contour.html)を参考にしたので,詳しくはそちらをご覧ください.

 本記事では,描き方の使用例として海の波の様子を表示させます.従って,変数は波の高さ・周波数・波向きの3つです.極座標形式の等高線図の周方向が波向きを,中心からの距離が周波数を,等高線の色が波高さを示します.
# 本編
## 準備
まずはモジュールのインポート

“`python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.cm as cm
“`

続いては表示させたいデータをインポート.
本記事では,あらかじめ用意したcsvファイルを読み込みました.ファイルは25行36列のデータです.行は周波数を表し,列は波向きです.

“`python
a =

元記事を表示

探索をPythonで学ぶ#2bit探索,順列探索

#bit探索,順列探索
AtCoder Beginner Contestの過去問を通じてbit探索,順列探索の理解を深める。

###bit 全探索
>問題: ABC079C – Train Ticket
駅の待合室に座っているjoisinoお姉ちゃんは、切符を眺めています。切符には 4 つの 0 以上 9 以下の整数 A,B,C,D が整理番号としてこの順に書かれています。A op1 B op2 C op3 D = 7 となるように、op1,op2,op3 に + か – を入れて式を作って下さい。
なお、答えが存在しない入力は与えられず、また答えが複数存在する場合はどれを出力してもよいものとします。
制約: 0<=A,B,C,D<=9 ```perl:ABC079C.py ABCD="0290" # 1<<3 = 1000 = 8 => [+or-,+or-,+or-]の8通り
for bit in range(1<<3): res=int(ABCD[0]) form=ABCD[0] for i in range(3): if(bit & 1<

元記事を表示

RedashでPythonデータソースを追加する

# はじめに

RedashでPythonデータソースを使えるようにするための設定の備忘録。

# 環境

“`bash

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

$docker –version
Docker version 20.10.0, build 7287ab3

“`

DockerベースでローカルにRedashをインストールしました。
Redashのバージョンは“`v8.0.0“`を使用しています。
インストール方法は[こちら](https://qiita.com/dyamaguc/items/a7a16f8ca9b562c33090)

# Pythonデータソースを使うために必要な設定

デフォルトではPythonデータソースを使えないので、使えるようにするために
“`redash/settings/__init__.py“` に記載されている“`default_query_runners“` に
“`”redash.query_r

元記事を表示

軽く動く強化学習、基本のQ学習からニューラルネットやLSTMの応用まで、4種のエージェントと7種のタスク

# はじめに

[「ScratchでAIを学ぼう」](https://www.amazon.co.jp/gp/product/4296106945)の筆者です。この本では、初めての方でもきちんと分かることを目指し、[ゲーム](https://scratch.mit.edu/projects/400073856/)を題材にしてQ学習を3段階で説明しました。

ここでは、その続編として、**python**で基本の**Q学習**、**ニューラルネット**の応用、また、多少実験的な試みになりますが、短期記憶ユニットである**LSTM/GRU**の応用を紹介したいと思います。

使用するプログラム[**memoryRL**](https://github.com/itoshin-tech/memoryRL)は、GitHubからダウンロードできます。GPUのない普通のPCでも短時間(長くても数分)で学習できることを想定しています。

まず、2つの例を見てください。

1つ目の例はmany_swamp と呼んでいるタスクです。ロボットを操作して、4つのゴール(青)を全て巡回できるとクリアとなり、エ

元記事を表示

ソフトウェアテストをまとめる

# はじめに
現場がユニットテストにフォーカスし始めたので、目検が多かったテスト文化をユニットテストに向けて深化させる(現場はphpだけど)
でもたしかに自動テスト文化になったほうが `分` でテストの話ができる。
`プロジェクト名: Portfolio`

# 参考
[Djangoのテストの書き方について勉強したのでまとめる](https://nwpct1.hatenablog.com/entry/how-to-write-unittest-on-django)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/94562/5caa15b6-ef31-d163-ec6c-309653bc9197.png)

# 大事なこと
– プロダクションコード(実際のコード)がない状態でテストをする

:point_up:なんだ、実際のコードを書く前に絶対に失敗するテストを書くのか。と思うことが大事

# ディレクトリの状態
アプリケーションは複数ある
– gmarker
– kanban
– li

元記事を表示

ChangeFinder(変化点検知)を実装してみた

* 製造業出身のデータサイエンティストがお送りする記事
* 今回は時系列データの変化点を検知する異常検知手法のChangeFinderを実装(サンプルコード)しました。

##はじめに
過去に異常検知手法や時系列データの解析手法を整理しておりますので、興味ある方はそちらも参照して頂けますと幸いです。

* [多変量統計的プロセス管理(MSPC)](https://qiita.com/DS27/items/165363158273e441e877)
* [疎構造学習による異常検知](https://qiita.com/DS27/items/279306656d0b41918846)
* [時系列解析](https://qiita.com/DS27/items/1e998a58488e76bfcbdc)
* [状態空間モデル](https://qiita.com/DS27/items/cd0e11c2b9eb097c606b)
* [隠れマルコフモデルを用いた異常検知](https://qiita.com/DS27/items/55a90c9791347d7622e5)

##Change

元記事を表示

OTHERカテゴリの最新記事