edo1z blog

プログラミングなどに関するブログです

Python

python - 損失関数

ディープラーニングで使う損失関数の、二乗和誤差と交差エントロピー誤差。 二乗和誤差 二乗和誤差は、差の二乗を全部足して2で割る。 def nijowagosa(y, t): return 0.5 * np.sum((y - t)**2) y = np.array([0.2, 0.03, 0.8]) t = np.array([0, 0, 1]) prin…

Python - 偏微分・勾配

偏微分 偏微分は、変数が2つ以上あるときに1つ以外を固定にして、固定じゃない1つに対して微分をすることだそうです。Pythonでやると簡単にできます。 下記の式で、x0が3、x1が4のときの偏微分 [mathjax] $$f(x_0, x_1)=x_02+x_12$$ コード import numpy as …

Python - Matplotlibで3次元グラフを書く

下記の式をグラフ化してみる。 [mathjax] $$f(x_0, x_1)=x_02+x_12$$ コード import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D def func(x0, x1): return x0**2 + x1**2 x0 = np.arange(-3, 3, 0.25) x1 = np.a…

Python - 数値微分

微分はある瞬間の変化量です。公式は下記です。超絶的に0に近い、というかもはや0という謎の極小値でもって計算することで瞬間変化量を出します。解析的にやるといろんな公式が編み出されているので真の微分が出せますが、コンピュータで公式通りにやろう…

ディープラーニングのサンプルコード

メモ。ゼロから作るDeep Learningの本用のサンプルコードは、Githubで公開されてます。これは、Githubの公開リポジトリなのでブログに書いても大丈夫なやつなはずなのでメモ。 oreilly-japan/deep-learning-from-scratch

ソフトマックス関数

合計が1になるように、うまく数字を調整してくれる関数らしい。確率を確認するのに便利。 [mathjax] $$y_k = \frac{\exp(a_k)}{\displaystyle \sum_{i=1}^n \exp(a_i)}$$ aがn個あるときの、k番目のyを取得する。分母は全てのaの指数関数の和。分子はk番目…

Python - 行列の掛け算

Numpyを使います。np.dot(A, B)で簡単にできます。 例えば、A([1, 2, 3], [4, 5, 6])と、B([7], [8], [9])を掛けます。 import numpy as np A = np.array([[1, 2, 3], [4, 5, 6]]) B = np.array([[7], [8], [9]]) print(np.dot(A, B)) 下記が出力されます。 …

シグモイド関数

ディープラーニングでシグモイド関数というのを使いまっす。シグモイド関数は、何か入力されたら0~1の数値を返します。入力された数値が0未満だったら0を返して、そうでなければ1を返すような関数をステップ関数といいまして、これよりも緩やかに0~…

Python - Jupyter

Jupyterの始め方を忘れた。 $ jupyter --version 4.1.0 Jupyterはもう入っている。 $ jupyter notebook これでブラウザにJupyterが表示された。

Python - 有名なWEBフレームワーク

WEBフレームワーク Django 超有名。結構でっかい。何でもできる。API作成の便利ツールとかもある。 Flask 有名。Djangoの次に使われている模様。非常に軽量。必要十分っぽい。 Tornado フレームワークだけではなく、高機能なWEBサーバもついているらしい。 F…

Python x TensorFLow - 最小二乗法

1次関数から試してみます。最小二乗法は、誤差を2乗した合計が小さくなるようにすることで、最もらしい関数を発見する方法です。1次関数でデータを10個つくって、作り出した関数を知らない前提で、機械に関数を発見してもらいます。 1次関数でやってみる 1次…

Python - matplotlibの使い方

matplotlibは、pythonでグラフとかかけるやつです。インストールは、ここに説明があります。ギャラリーみるとかなり色々なグラフをかけるようです。使い方のドキュメントはここです。 グラフを書いてみる plot()でプロットできます。引数は1つだとyだけ、2…

windows10 - Pythonインストール(Anaconda)

参考:Anaconda を利用した Python のインストール (Windows) Anaconda は、Continuum Analytics 社によって提供されている、Python 本体に加え、科学技術、数学、エンジニアリング、データ分析など、よく利用される Python パッケージ(2016 年 2 月時点で …

Python - NumPyで画像を配列として取得する

from PIL import Image from numpy import * im = array(Image.open('img.jpg').convert('L')) print(im.shape, im.dtype) print(im) (533, 800) uint8 [[156 159 162 ..., 135 132 130] [156 155 155 ..., 133 132 133] [155 153 155 ..., 134 133 131] ...…

Python3 - Pillowの使い方

参考:Python3.3対応画像処理ライブラリ Pillow(PIL) の使い方 from PIL import Image import os file_name = 'img.jpg' #画像ファイル開く img = Image.open(file_name) #グレースケール変換 img_gray = img.convert('L') #リサイズ img_resize = img.resiz…

python - wheel

Python Wheels http://pythonwheels.com/ パッケージの形態っぽい。昔はEggというのが主流の形態でしたが、古くなったのでwheelに変わったらしい。wheelパッケージのインストール方法を知りたい。あとpipというのはyumみたいな感じのやつっぽいから入れて使…

協調フィルタリング(ピアソン相関)

from operator import itemgetter from math import sqrt data = { 'A': {'あ': 10, 'い': 5, 'う': 3, 'え': 4, 'お': 9, 'か': 6}, 'B': {'あ': 3, 'い': 3, 'う': 3, 'え': 4, 'お': 3, 'か': 4}, 'C': {'あ': 2, 'い': 10, 'う': 4, 'え': 2, 'お': 4}, …

協調フィルタリング(ユークリッド距離)

これを読んでます。集合知プログラミング 参考:協調フィルタリングでアイテムの推薦をする 協調フィルタリングとは? 参考:協調フィルタリング 協調フィルタリング(きょうちょうフィルタリング、Collaborative Filtering、CF)は、多くのユーザの嗜好情報…

MacでPythonを使って機械学習をやってみる

参考:MacでPythonの機械学習環境構築(2015年2月版) brewが動かない。 参考:Yosemiteでbrewが壊れた $ vim /usr/local/Library/brew.rb 1行目の1.8をcurrentに変更する。 #!/System/Library/Frameworks/Ruby.framework/Versions/current/usr/bin/ruby -W0 …

GAE (Google App Engine) でcsvを一括アップロードする (python)

昔駅データのcsvファイルをGAEで一括アップロードしたことがありましたが、改めて本日csvファイルのアップロードが必要になりましたので、調べながらまたやってみたいと思います。 このデータのアップロードとダウンロードというページに従ってやればいいよ…

codeIQをやってみた

The Essence of Programming 結城 浩さんからのアルゴリズムの問題をやってみました。簡単だと思ったのですが、アルゴリズムとかまだ勉強できてないので合ってるのか分かりません。ミスしてる可能性もあります。一応確認したら出来てる感じでしたが。ただ、…

せどり向けプレミア本・DVDの検索システムをつくってみた

せどりというのはご存知でしょうか?ブックオフで100円で買った古本は、アマゾンだと意外と高値で売れたりするというやつです。裁定取引ということでいいんでしょうかね。最近ですと電脳せどりといいまして、わざわざリアル店舗のブックオフに足を運ばずにイ…

Pythonで時間関連の関数の勉強(datetime)

地味ですが、Pythonの時間関連の勉強をしたいと思います。 当然いつもやっているのですが、しっかりと頭に叩き込みたいと思います。 下記をやることで頭に叩き込まれると思います。 今日を得る 明日を得る 昨日を得る 1時間前を得る 29時間後を得る 5分前…

Pythonのオブジェクト指向の勉強(1)

Pythonのオブジェクト指向を学びたいと思います。 まずは、お気楽 Python プログラミング入門 第 5 回 オブジェクト指向の基礎知識をみながら勉強していきたいと思います。 まず読みながら勉強になったことを一覧化していきます。 クラス名の横に括弧をつけ…

Product Advertising APIで効率よくItemSearchする(GAE×Python2.7)

こんばんは。タイトルのとおり効率よくItemSearchしたいと思ってます。 効率よくも何もないとお思いになられるかもしれませんが、本、DVD、おもちゃ、ホビー、TVゲームが全て検索できるItemSearch関数を作ろうということです。 私は本しかやったことなかった…

再帰? (Python)

これ再帰? def testdef(x): testList = [] testList.append(x*2) if x >0: testList += testdef(x-1) return testList testdefに10を入れると、[20, 18, 16, 14, 12, 10, 8, 6, 4, 2, 0]が出てきます。 これ再帰でしょう??初めて再帰をやった!?お恥ずか…

GAEでメールを送信する (Python)

GAEでメール送信するのは強烈に簡単です。 久しぶりで忘れてたのでメモっておきます。メモる必要すらないくらい簡単です。 ここを見ればすぐ分かります。 使い方イメージはこんな感じです。 from google.appengine.api import mail class Mail(webapp2.Reque…

tweepyでtwitter apiのエラーメッセージとエラーコードを取得する

tweepyはpython用のtwitter apiを簡単に操作できるモジュールです。ただtweepyはtwitter api 1.1に対応していない為、有志の方が作成されたtweepy2をつかってます。 tweepyのエラーに関して細かい話ですがメモしておきます。 tweepyを経由してtwitter api上…

twitterの自動フォロワー管理ツールをつくってみた

GAE × Python2.7 × Twitter Api1.1でtwitterの自動フォロワー管理ツールをつくりました。 最初フォロー・フォロー削除共に1日480件という設定にしていたら、アップして数時間で速やかにtwitterからアカウント凍結されました。。まあさすがに1日48件なら大丈…

GAEで純粋Django1.4を使う

環境はMacです。Eclipse×GAE×Python2.7を使ってます。純粋Djangoを使えるようになっていることを知ったので使ってみたいと思います。 参考にしたサイトは、下記2点です。 Windows7 x64 で、GAE/P(1.7.0) + Django 1.3 の環境を構築する GAE 1.6+Django 1.2 …