サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
WWDC24
qiita.com/haminiku
GoogleBigQueryの問い合わせクエリー肥大化でメンテが大変なことになったので、人間のためのクエリーを書けるよう工夫する話です。データ収集基盤としてBigQueryを採用しています。スマホアプリやサーバで生成される全てのユーザ行動ログをfluent経由でBigQueryに投入してデータサイエンティストに自由に活用してもらっています。 データ収集基盤の仕様設計 BigQueryはGoogle様のクラウド技術を利用して100GByteのフルスキャンだって10秒で終わるイケてるサービスです。BigQueryをデータ収集基盤として運用すればReadが超高速なので、アプリエンジニアは行動ログを仕込むだけ、データサイエンティストは蓄積されたデータを利用してビジネスに活用とWin-Winの関係が築けるはずだ、と思っていたのですがそう上手くはいきませんでした。 問い合わせクエリー肥大化による業務効
TensorFlowとは2015/11/9にオープンソース化されたGoogleの機械学習ライブラリです。この記事ではディープラーニングと言われる多層構造のニューラルネットワークをTensorFlowを利用して構築しています。 TensorFlowはPythonから操作できますがバックエンドではC++で高速に計算しています。macのPython2.7系環境でTensorFlowの上級者用チュートリアルを行い、手書き認識率99.2%の多層構造の畳み込みニューラルネットワークモデルの分類器を構築したときの作業メモです。特別な設定なしにCPU使用率270%メモリ600MByteとちゃんと並列計算してくれました。MNISTランキングを見ると認識率99.2%は上位のモデルとなるようです。 TensorFlowチュートリアル TensorFlowの初心者用と上級者用チュートリアル2つに取り組んでみました
Airflowを導入するとcronのバッチ処理でエラーが起きてログファイルを漁った結果、Log出力が甘くて原因特定できないぐぬぬぬぬもうやだまじつらい、みたいなことが仕組みで防げるようになります。 Airflowってご存知でしょうか? Airbnb社がオープンソースで公開しているデータパイプラインのスケジュールとモニタリングツールです。簡単に言うとジョブツリーを構築できる高機能なcron。Python2系で開発されていてpip install可能なオープンソースのソフトウェアです。AWSが年1で開催している大規模イベントre:Invent 2015で複数の会社がAirflowを利用していると発表し注目を集めました。Yahooの発表を読んで興味を持ちました。この記事はAirflowをプロジェクトに導入すべきか検討、検証したメモです。 ■ プロジェクトの解析タスクをAirflowに乗せてみた
Pythonで実装されたオープンソースの協調フィルタリング型RealTimeレコメンドエンジンです。Amazonの『この商品を買った人はこんな商品も買っています』機能や、Twitterの『おすすめユーザ』機能と類似した機能を提供します。稼働にはRedisサーバが必要です。 インストール https://pypi.python.org/pypi/cf_recommender 特徴 ■ 1. Getが早い レコメンドする商品を平均5msで取得できます。10万Item,10万ユーザ,ユーザが平均50Item購入時のベンチマーク結果です。計算済み結果をRedisのSortedSetに格納していて、クエリ1回でレコメンドする商品を取得することで実現しています。 ■ 2. オススメする商品はリアルタイム更新 購入発生時に即時レコメンドする商品が更新され結果に反映されます。 ■ 3. インストールが簡単
Python3.5でasync/awaitが追加されていたのでメモリ消費量とコンテキストスイッチのコストの観点でベンチマークを取ってみました。 async/await構文とは 非同期処理やノンブロッキングI/O処理を良い感じに書ける非同期処理のパラダイムにおける最先鋭の構文です。C#に実装されたあと、C++,VB,Node.jsに実装されついにPythonにもやってきた!という感じです。特徴はいままでThreadingで頑張って書いてた非同期処理が、より簡潔により強力に書けるようになります。軽量スレッドとはマイクロスレッド、ファイバーとも呼ばれるもので、「C10K問題」(クライアント1万台問題)と言われるI/O待ちによってクライアント数が多いとハードウェアの性能が生かしきれない問題の解決策の1つです。I/O待ちの際に高速にコンテキストスイッチして他のクライアントを捌くことでハードウェアの性
やや,かみごたえがある。T字形の骨をはさんで片側にヒレ,片側にサーロインの肉のついた大きな塊 Follow
Redis不適切利用による問題は本番運用が始まってから顕在化することが多く、時限爆弾みたいな存在です。事前に防ぐにはコードレビュー段階で叩くしかありません。 Redisはスクリプト言語と相性が良く、適切に利用するとRDBと比較し驚くほど高速なプログラムを組むことができます。昨年尊敬する先輩にコードレビューで斧100本くらい(レビューコメント)投げられて血まみれになりつつ学んだことを、まとめて書いてます。概要は『消えても良いデータならRedis』 Redisのメモリが溢れたら... (この話は事実ではなくファンタジーです。) 深夜電話で叩き起こされました。どうやらアクセス障害みたいです。 何人かで実機確認したら、まったくゲームが遊べない。データ不整合怖いのでメンテIN。 ほどなくしてRedisが溢れメモリ不足で新規書き込みが出来なくなっていると判明。サーバのメモリ容量は64GByteでこれ以
# default __repr__ >>> random.choice(Unit.get_all()) <module.Unit object at 0x10cff0550> # 定義変更後の __repr__ >>> random.choice(Unit.get_all()) ドラゴン・マーメイド[ID:2001] エラーログにも__repr__の値が表記されるのでデバッグで便利 'self' <Player: id:123456 name:【魚人】オルカ・スパイシー Lv:99> reprの実装を検証 # -*- coding: utf-8 -*- from __future__ import absolute_import, unicode_literals class BaseRepr(object): id = 12345 name = '日向蟹造' class Def
協調フィルタリング型レコメンドしたいけど、オープンソースでいいライブラリないし、ASPサービスは基本5万円/月以上。もう自分で作るしか無い 協調フィルタリング型レコメンドとは 一番有名な実装例はAmazonの『この商品を買った人はこんな商品も買っています』機能だと思います。以前簡易版の実装を紹介しました。簡易版記事の続きが本記事となります。 協調フィルタリング(きょうちょうフィルタリング、Collaborative Filtering、CF)は、多くのユーザの嗜好情報を蓄積し、あるユーザと嗜好の類似した他のユーザの情報を用いて自動的に推論を行う方法論である。趣味の似た人からの意見を参考にするという口コミの原理に例えられることが多い。 火花と同時受賞した筋トレ作家羽田先生のスクラップアンド・ビルドが1番目にレコメンドされるあたり、流石Amazon様です..直木賞を受賞した流も良い小説ですね。
日本語の自然言語ライブラリの中には、ヘブライ語や韓国語をぶちこんだ瞬間にエラーで処理が止まるライブラリ多いです。そんなときに便利な呪文を紹介します。 たとえばPyCon2015で紹介されたのjanomeは韓国語が混入するとエラーで死ぬ janomeはMeCabをインストールする手間を省いてくれる素晴らしい形態素解析器なのですが、日本語以外の文字が1文字でも混入するとエラーで死にます。wikipediaの左言語切り換えバーを読み込んだ例だと... text = "他言語版Italiano한국어PolskiSimple English" t = Tokenizer() for token in t.tokenize(text): print token --------------- Traceback (most recent call last): File "tests.py", lin
前回の記事 pythonと遺伝的アルゴリズムで作るFX自動売買システム その1 遺伝的アルゴリズムでFX自動売買 その2 進化する売買AIの実装 今回作るモノ 自動売買システムを作ったときに使ったOandaAPIの紹介と、売買注文の発注機能について書いていこうと思います。 自動売買で使ったOandaAPI 5種類のAPIを使って構築しました。詳細はOandaのAPIDocument参照 OAuth2のTokenは、口座開いてログインするとWebで発行できます。 トークンはcurlコマンドHeaderのAuthorization: Bearer ********に設定します。 """ 01.アカウント情報API curl -H "Authorization: Bearer ********" https://api- fxtrade.oanda.com/v1/accounts/12345 "
前回の記事 pythonと遺伝的アルゴリズムで作るFX自動売買システム その1 今回作るモノ 前回のその1では基本的なAIと全体の仕組みを書いたので今回は複雑な売買AIを定義して、実際に遺伝的アルゴリズムで進化させていきます。 複雑な売買AIを定義 ■ 仕様 現在レート、4時間平均レート、24時間平均レート、過去25営業日の最高値と最安値、過去25営業日の最高値と最安値から何日経過したかで、現在の相場をパターン分けし過去10年の売買データから適切(適切な値は遺伝的アルゴリズムで計算して過去のデータから求める)な注文を行う。 ■ 動作例 通貨:ドル円 現在時刻: 2015年10月1日 10:00:00 現在レート: 120.00円 4時間平均レート: 119.80円 24時間平均レート: 119.40円 過去25営業日の最高値: 121.75円 過去25営業日の最安値: 117.25円 過去
作ったモノ 次の機能を実装してみました 1. 最新の為替レートを取得し続けるプログラム 2. AIを稼働させ自動売買するプログラム 3. 最新のデータを元に新しいAIを遺伝的アルゴリズムで生成するプログラム 4. AIのパフォーマンスを測定して引退と取引通貨単位を管理するプログラム 背景 OANDAが提供している取引用APIが、かなり良い感じだったので実現できました。 特に1通貨単位(1ドル単位)で売買できるため、AI100個動かし取引を重ねても損失は1日数十円に収まります。試験時に売買システムがバグで暴走しても安心です。このAPIが無ければ個人では実現出来なかったので、良い時代になったなーと思います。 http://developer.oanda.com/rest-live/development-guide/ 遺伝的アルゴリズムの特徴 最適化問題の準最適解を短時間で解ける。 最適化問題
今回つくるもの Amazonによく出てくる『この商品を買った人はこんな商品も買っています』機能を作ってみよう。 要素技術と実装方法 一般的にレコメンド機能(オススメ機能)と呼ばれる機能。レコメンドの実装方法は大きく2つ『協調フィルタリング』と『コンテンツベースフィルタリング』。 コンテンツベースフィルタリングは、例えば上記例の『老人と海(ヘミングウェイ)』のお勧め商品をコンテンツベースで実装する場合は、事前に商品に属性のタグを打っておく。例えば作者という属性でタグを打っておけば、同じヘミングウェイが記した本をお勧めとして表示する。 協調フィルタリングは、この商品を買った他の人が買った商品をお勧めとして表示する。 今回は『協調フィルタリング』を実装する。 redisとpython使います。 redisはKVS redisのSortedSetを利用する。 redisインストール手順 MacPo
背景 個人PJでサーバ運用中。致命的なエラー起きたときに、すぐ復旧したい。 通知方法どうしよう よくある解決手段 Djangoならエラーメール通知がある。 よくある解決手段の問題点 gmailならSPAM扱いで迷惑メールに突っ込まれる。 キャリアメールでも同じ。SPAM扱いされる。 SPAM扱いされないよう、サーバのメール設定を行うのはとても面倒だ。 Twilio使ってみた アメリカの会社で、日本ではKDDIが代理店になっている API経由で電話を掛けるサービス。日本公式ページ Twilio 電話代破産やパケ死しないか 料金プランがSMS発信や着信、発信を中心としており コールして着信を残すという形態を想定していない作りになっている。 ある程度なら無料で使える。発信して着信履歴残すのみなら無料分で運用できそう。 課金する場合は月189円になる模様。高い。無料分のみで使うのが安定。 アカウン
概要 スマホゲームでUnityマルチプレイを実現するためには、どうすればよいか。 PhotonSDKとTNetをざっくり斜め読みしたまとめ。 UnityのNetworkViewでそのまま実装した場合の問題点 1.そもそもスマホ同士だと繋がらない場合がある Unity Network Reference Guideに記載されている通り、中央サーバを持たずスマホ端末の1台をホストとする。ホストの通信環境によっては繋がらない状態になる。具体的にはスマホだと同じLAN上じゃないと安定して繋がらない。 2.ホストが落ちると全員落ちる 通信が不安定なスマホだと結構致命的。 3.権威サーバが存在しないためチートに弱い ホストがスマホ端末になるためどうしてもチートに弱い構成になります。 4.Remote Function Callの使い勝手が悪い RFCとはネットワーク越しに相手objectのmethod
このページを最初にブックマークしてみませんか?
『@haminikuのマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く