- 1. MLパイプライン:手作業による特徴抽出の課題を浮き彫りにする
- 2. 備忘録)文字列に含まれた特定の記号を辞書で一括変換する
- 3. 初心者便利ツール(アイデア検討中)
- 4. Pythonで湯婆婆を実装してみる
- 5. ポケモン×データサイエンス(2) – ポケモン剣盾のパーティ構築をネットワーク分析から考える 試行編
- 6. 静岡のGoToEat公式サイトをスクレイピング、伊豆のキャンペーン対象店をリスト化する
- 7. [auto-ohin]電子押印できるコマンドラインツールauto-ohinの紹介[電子印鑑]
- 8. Youtube Data API使って動画検索してみた(初心者)
- 9. PyTorchでXORを実装してみる
- 10. Pythonを使って円周率を求める #モンテカルロ法
- 11. PythonでいろいろPOSTしてFlaskで受け取る
- 12. Existence from the viewpoint of Python
- 13. 競プロのライブラリ整理~二元一次不定方程式~
- 14. 競プロ用テンプレート(Python)
- 15. GCPのCloud Shell EditorでPythonの開発環境ぐちゃって詰んだので更地にして再構築したらなんとかなった件
- 16. Redhat7でFlask/MySql/Apache/mod_wsgi/virtualenvの環境構築(Python2.7)2020年11月
- 17. discordでデータ保存してみた
- 18. GCP Cloud Vision APIでテキスト抽出やーる(Python3.6)
- 19. 【AIアルゴリズム】次元削減(t-SNE)について
- 20. 古のTensorFlow1.xで部分的にパラメータの読み込みをする
MLパイプライン:手作業による特徴抽出の課題を浮き彫りにする
この4回シリーズの第1部では、MLパイプラインを探索し、手動による特徴抽出の課題を浮き彫りにしていきます。
*本ブログは英語版からの翻訳です。オリジナルは[こちら](https://www.alibabacloud.com/blog/part-1-image-classification-using-features-extracted-by-transfer-learning-in-keras_595289)からご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。*
[アリババ・クラウド・コミュニティ・ブログ](https://www.alibabacloud.com/blog/?spm=a2c65.11461447.0.0.5bd3e739Qn9U9o)執筆者の[Ahmed F. Gad](https://www.linkedin.com/in/ahmedfgad?spm=a2c65.11461447.0.0.5bd3e739Qn9U9o)氏より
全4回のチュートリアルを通して、事前に学習したディープラーニングモデル(
備忘録)文字列に含まれた特定の記号を辞書で一括変換する
#概要
「データに含まれる文字の一括変換方法」
https://qiita.com/wellwell3176/questions/1345ab14964d2a050b5a上記質問への回答を元にプログラムを作成した。
質問ページに貼ると長くなりすぎたので分割のために投稿。#仕様
表1の生データに対し、表2に在る変換表を用いて記号を分離・変換して新たな列に格納する
今回のデータでは表2の変換表が小さいが、実際のデータでは記号が30種類、列ラベルが10種類ほどあるので、
「1枚のエクセルファイルで変換表をなるべくまとめたい」という希望があった。
※表2くらいのサイズならエクセルファイルのタブごとに「個人予想の変換表」「新聞予想の変換表」と作って管理したほうが絶対楽表1 生データ
| No. | 馬名 |
| :-: | :-: |
| 1 | コシヒカリ○③ |
| 2 | ササニシキ◎ |
| 3 | ヨモギダンゴ✕② |
| 4 | タナカタロウ① |表2 変換表
| | 個人予想 | 新聞予想 |
| :-: | :-: | :-: |
| ① | 1番 |
初心者便利ツール(アイデア検討中)
#メモ書き
素人でも最近のITに参画できるために、あったらいいなと思うツール
#親切コマンダー
これはCLIベースの悩み
* GITが出来ない
* GITIGNOREが分からないGITが出来ない → コマンドを忘れる
ユースケースに遭遇 → 教えて(チャットボット) → 親切さん登場し、ワンポイントを開設 → チートシートが出来る → 覚えたら合格バッジ、進級する
GITIGNOREが分からない → 覚えられるかっ!
したいこと → テンプレートで生成 → GIBO使う ※完了
見てもさっぱり? → AIで自然言語処理 → 全行にコメントを追加する自分としては、チャットボットは初心者向け
AI自然言語処理 → コメント記入は万人向け
→ 将来的にはAIは、そういうところから普及していく#その他
ネタを思いついたら書いておく
Pythonで湯婆婆を実装してみる
# はじめに
@Nemesisさんの[Javaで湯婆婆を実装してみる](https://qiita.com/Nemesis/items/c7192a7c510788d2cba2)がランキングに載っているのを見たので、Pythonで実装してみました。
Python初めての人でもできると思います。(というかこのために初めてPython3でプログラミングしました。)# コード
“`python3:yubaba.py
print(“契約書だよ。そこに名前を書きな。”)
name = input()
print(“フン。”, name ,”というのかい。贅沢な名だねぇ。”)
import random
num = random.randint(0,len(name)-1)
newName = name[num]
print(“今からお前の名前は”, newName ,”だ。いいかい、”, newName ,”だよ。分かったら返事をするんだ、”, newName ,”!!”)
“`これがコードです。なお私はPython3で書いています。Python3が実行できる環境であれば動くはずです
ポケモン×データサイエンス(2) – ポケモン剣盾のパーティ構築をネットワーク分析から考える 試行編
こんにちは、[前回の記事](https://qiita.com/b_aka/items/7d2b768dfa7817f34fc2)に引き続きポケモンの可視化についてです。
ポケモンの対戦環境においては、いかにしてパーティを構築するかが鍵であり、それによって勝敗が決まるといっても過言ではありません。
今回はそのパーティ構築を考える上で、ポケモン同士がどのような関係性にあるのかを把握するため、ネットワークの力を借りたいと思います。
## データインポート
データは前回の記事で作成したデータの内、一緒に採用されているランキング`ALL_SEASON_TEMOTI_POKEMON.csv`を使用します。
こちらのデータへのパスを
“`python
file_path = ‘ALL_SEASON_POKEMON.csvへのパス’
“`としたうえで、以下の関数を定義して
“`python
import pandas as pddef make_edge_list(file_path):
df = pd.read_csv(file_path, encoding=’
静岡のGoToEat公式サイトをスクレイピング、伊豆のキャンペーン対象店をリスト化する
静岡では2種類の食事券を販売している。
| | 赤富士券 | 青富士券 |
| ———– | ——————————————- | ———————————————— |
| 金額 | 1冊 8,000円 (10,000円利用可能) | 1冊 10,000円 (12,500円利用可能) |
| URL | https://premium-gift.jp/fujinokunigotoeat/ | https://gotoeat-shizuoka.com/ |
| robots メタタグ | index,foll
[auto-ohin]電子押印できるコマンドラインツールauto-ohinの紹介[電子印鑑]
# 電子押印できるコマンドラインツールauto-ohinの紹介
## 0. はじめに
毎月月末になると,pdfファイルを印刷して押印した後にスキャンするというムーブをしていました. そこで,押印したくなさすぎるが故に,電子押印をしてくれるコマンドラインツールを作りました.リポジトリはこちら[GitHub](https://github.com/MitawaUT/auto-ohin)
## 1. インストール方法
簡単です.“`console
$ pip install auto-ohin
“`## 2. ファイルの準備
次のものを用意します.
– 押印したいpdfファイル
– 電子印鑑(透過画像(png))
– configファイル(後述)### 2.1 configファイルの準備
押印するために必要なconfigファイルを用意します.Jsonフォーマットで書くことも可能ですが,Jsonnetにも対応しています.
例えば以下のファイルをテキストエディタで作成し,適当な名前で適当な場所に保存します.今回は,`path/to/config.jsonnet`
Youtube Data API使って動画検索してみた(初心者)
# はじめに
データ分析の勉強はインプットも大事だけど実践が1番ってことで、練習になるいいデータはないかなーと思っていました。Youtubeのデータがいいものなのかは、正直今の僕には判断ができません。でも、よくYoutube見るし、興味のある分野なので**「Youtube Data API」**を使って分析用のデータ抽出ができるようになることを目標に使い方をまとめてボチボチまとめて行こうかと思います。APIの学習には以下のページ(APIリファレンス)を利用しました。
[https://developers.google.com/youtube/v3/docs?hl=ja](https://developers.google.com/youtube/v3/docs?hl=ja)# 検索処理
今回は手始めに以下の条件で動画を検索し、結果をcsvファイルに出力します。– 指定したキーワードで動画を検索(キーワードは第1引数で指定)
– 検索結果は再生回数で降順に表示また、検索結果の動画がどのチャンネルのものかを度数分布化し、csvファイルに出力します。
# ソースコード
ソース
PyTorchでXORを実装してみる
#はじめに
Kerasでやりたいことをやろうとすると、結局tensorflowを使わざるを得ず、それならPyTorchの方がいいんじゃね?ということで早速、XORを実装してみた。#環境
– Python 3.6
– pytorch 1.7.0#ソース
“`python
import torch
import torch.nn as nn
import torch.optim as optimclass Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.fc1 = torch.nn.Linear(2, 8)
self.fc2 = torch.nn.Linear(8, 8)
self.fc3 = torch.nn.Linear(8, 1)
self.sigmoid = nn.Sigmoid()def forward(self, x):
x = torch.nn.func
Pythonを使って円周率を求める #モンテカルロ法
#初めに
この記事では
ラムダさんの[動画](https://www.youtube.com/watch?v=Ymtb47ZfMgI)を見てそのまま、深夜テンションで書いたモンテカルロ法を用いて円周率を求めるプログラムを解説する記事です。深夜テンションなのであまり期待しないで下さい!#コードが酷い
“`python
import matplotlib.pyplot as plt
import randomXlist=[]
Ylist=[]
Number_list=[]
pi=0
pi_list=[]for i in range(15000):
Xlist.append(random.uniform(0,1))
Ylist.append(random.uniform(0,1))
if (i+1)%10 == 0:
Number_list.append(i+1)
pi_list.append((pi/(i+1))*4)
if Xlist[i]**2+Ylist[i]**2 <= 1 and (i+1)%10
PythonでいろいろPOSTしてFlaskで受け取る
pythonでjsonとか画像とかPOSTしたくなってきたので, 全部まとめました。全部Flaskで受け取ってます。
#まずは普通にdataをPOST
“`python:post.py
import requests
import jsonpost_url = “http://127.0.0.1:5000/callback”
#postしたいデータ
data = “wowwowwowwow”#POST送信
response = requests.post(
post_url,
data = data
)print(response.json())
“`
“`python:server.py
from flask import *
import os
from PIL import Image
import jsonapp=Flask(__name__)
@app.route(“/”)
def hello():
return
Existence from the viewpoint of Python
What is identical to itself exists, otherwise not.
Pythonic Zen:
“`python
world = [0, 1, 2, 3, float(“nan”)]
[x for x in world if x == x]
“`Result:
“`text
[0, 1, 2, 3]
“`## Explanation
According to IEEE754 (or PEP754),
$\forall$ X, `NaN != X`.
Thus `Nan != Nan`.
## See also
– [What is the rationale for all comparisons returning false for IEEE754 NaN values?](https://stackoverflow.com/q/1565164)
– [PEP 754 — IEEE 754 Floating Point Special Values](https://www.python.org/dev/peps/
競プロのライブラリ整理~二元一次不定方程式~
[Codeforces Round #592 (Div.2)-C The Football Season](https://codeforces.com/contest/1244/problem/C)を二元一次不定方程式で解く際に苦労したので、この記事で解法を整理していこうと思います。また、**拡張ユークリッドの互除法による特殊解の求め方は扱わない**ので、詳しくは参考記事4を読んでください。
#(1)二元一次不定方程式の解き方
##目標
$ax+by=c$ ($a,b,c$:整数)における$x,y$の一般解を求める
###①前提条件
**$c$が$gcd(a,b)$の倍数でない場合は解が存在しません**。逆に$c$が$gcd(a,b)$の倍数の場合は必ず解が存在します。
(↓以下では、$g=gcd(a,b)$として表記します。)
###②特殊解を求める
**拡張ユークリッドの互除法により求める**ことができます。詳しくは参考記事4とコードを見てください。また、拡張ユークリッドの互除法により求まるのは$ax+by=g$の特殊解なので、**求まった特殊解をそれぞ
競プロ用テンプレート(Python)
[C++用のテンプレート](https://qiita.com/DaikiSuyama/items/9dba963ba74396b9b7fd)に引き続きPythonのテンプレートも作ることにしました。
最近ハマっているCodeforcesでinputの高速化が要求されるので、やむを得ず導入することにしました。#テンプレートの説明
###(1)itertools
競プロで一番有能なモジュールです。使い方を知らない人は[僕の記事](https://qiita.com/DaikiSuyama/items/11f63a94d63fa72e8bf4)を読みましょう。
ちなみに、combinations\_with\_replacementも使ったことがありますが、関数名が長いので省略しました。###(2)collections
両方向から追加・削除可能なdeque、要素ごとに個数を保存できるCounter、どっちも有能なデータ構造です。
ちなみに、Counterは辞書のサブクラスなので、辞書っぽく使えます。###(3)bisect
二分探索で使うモジュールです。使い方を知らない人
GCPのCloud Shell EditorでPythonの開発環境ぐちゃって詰んだので更地にして再構築したらなんとかなった件
# 概要
2019年末くらいからGCPのCloud Shell上でPython開発してCloud Functionにデプロイする作業してました。
ある程度開発終わって数ヶ月放置した後、最近新しい開発案件が発生したのでちょろっといじってデプロイしてテストするかーと思ったらデプロイ時に色々エラーを吐き始めてしまいます。
エラー見つつ対処進めたけどまあうまくいかず、最終的に環境リセットしたらうまく行ったのでまとめます。Pythonとpipのアップデートとバージョン切り替えが一番手詰まりポイントでした
# 手順
1. バックアップをとる
2. 公式の手順にしたがって環境をリセットする
3. Pythonをpyenvでアップデートする
4. pipをpip3に切り替えてアップデートする
5. 公式の手順にしたがってgcloudをアップデートする
6. 作業ファイルを復元する
7. requirements.txtから更新する
8. あとはdeployして適宜バグを潰す## 1. バックアップをとる
`pip freeze > requirements.txt`でインストール済みパッ
Redhat7でFlask/MySql/Apache/mod_wsgi/virtualenvの環境構築(Python2.7)2020年11月
# 検証環境
– Red Hat Enterprise Linux Server release 7.9 (Maipo)
– Python 2.7.5
– Apache/2.4.6 (Red Hat Enterprise Linux)
– Flask 1.1.2
– MySql mysql Ver 8.0.22 for Linux on x86_64 (MySQL Community Server – GPL)
– pip 20.2.4
– virtualenv 20.1.0# インストールとアプリケーションファイルの作成
## Apache/mod_wsgiのインストール“`sh
$ sudo su
$ yum install httpd
$ chkconfig httpd on
$ service httpd start
$ service httpd status # 確認
$ yum install mod_wsgi # mod_wsgiのインストール
“`## pipのインストール
“`sh
$ curl https://bootstrap.pypa
discordでデータ保存してみた
discord のチャンネルにファイルを上げてそれを取得します
(初心者が作ったので変なところがあるかもしれません)
# 環境
python 3.8.2
discord.py 1.5.1#作ろうとしたきっかけ
discord でデータを保存できたらいいなーと思っていて
heroku で稼働しているため 約24時間で自動再起動します
なのでファイルを保存すると消えるので
使うとしたらデータサーバーを借りるしかないのですが
いろんな記事を見てもいまいちわからず・・
ここで たしかdiscord でファイルを上げれるはず・・
こんな感じで作成しました
# BOT作成
まずdiscord.py とはどんなものなのかわからない方はこちらを参考にしてください
https://qiita.com/1ntegrale9/items/9d570ef8175cf178468f# 基本設定
まずBOTの設定等が終わり使える状況を前提とします
次にデータを保存するチャンネルを作ります
名前はなんでもいいです
次にするのが一番重要な保存するファイルです
ファイルはjson で作ってください
今回使用す
GCP Cloud Vision APIでテキスト抽出やーる(Python3.6)
# はじめに
GCP Cloud Vision APIで画像からテキスト抽出やってみました# 開発環境
– Windows 10
– Anaconda
– Python 3.6
– OpenCV 4.4.0# 導入
[画像内のテキストを検出する](https://cloud.google.com/vision/docs/ocr)を参考にします。1.Cloud Consoleからプロジェクトを作成します。
2.課金が有効になっていることを確認します。
3.Vision API を有効にします。
4.認証の設定をし、JSONファイルがPCにダウンロードされます。
5.環境変数 GOOGLE_APPLICATION_CREDENTIALS にJSONファイルのパスを設定します。
6.anaconda promptを開き、Python 3.6環境を作成します。~~~console
$ conda create -n py36 python=3.6
$ conda activate py36
~~~7.ライブラリをインストールします
~~~console
$ pip ins
【AIアルゴリズム】次元削減(t-SNE)について
今回は機械学習の教師なし学習、「次元削減(t-SNE)」のアルゴリズムについて記事を書いていきます。
次元削減にはいくつかの有名なアルゴリズムがありますが、ここでは多次元データに適した手法のt-SNEについて書いていきたいと思います。次元削減とは入力データの説明変数を少なくする変換のことで、元の入力データの情報を保ちつつも少ない変数で元のデータの特徴を説明できるようにすることです。
例えば、Aさんの年齢(目的変数y)を予想したいと考えた時にAさんの情報として身長(説明変数x1)、体重(説明変数x2)のみ与えられているものとします。大人になると子供よりも身長、体重がともに高くなっていくのである程度年齢と相関がありそうです。この時の身長、体重という2つの変数を次元削減しようとするとこの2つの変数の情報をある程度保ちつつも変数を1つにすることを考えます。そうすると、身長、体重の関係から「体格」という一つの変数を作れそうです。そして、その体格という変数を用いて年齢を予想することもできそうです。このように、いくつかある変数を一つにまとめることを次元削減といいます。
通常は変数が何十何百と
古のTensorFlow1.xで部分的にパラメータの読み込みをする
ありがたいことに、世にTensorFlow2.xが公開されてずいぶん経ちました。
これまでv1.xで随分もがいていましたが、v2.xではデコレータで簡単にtf的なグラフに変更できるようになるなど大変素晴らしい機能がたくさん実装され、我々開発者もスピーディにモデルの学習、評価等を行えるようになりました。しかし一部にv2.xとの互換性の問題からそのままv1.xを使用しなければならない人もいますよね(何を隠そう私のことです)。
今や更新されるドキュメントはみんな2.xについて言及していて1.xのドキュメントは増えにくく、適切な情報にたどり着けなくなってきています。
私は今(2020/11/4 17:10現在)、実際v1.xでパラメータを部分的に読み込む場合の処理についてヒットするまで時間がかかってしまいました。
単にResNetとかMobileNetとか、公開されているモデルをそのまま使用する場合なら計算グラフ全部で読み込んでしまえるのでそこまで苦労しないでしょうが、事前に学習したResNetを画像エンコーダとして後続の自作ネットワークに使用したい…という場合には部分的にパラメータの