タグ

ブックマーク / yut.hatenablog.com (22)

  • 機械学習の種類と特徴 - Y's note

    人間ではなく機械が自動的に意思決定することのメリットとして、大量のデータをInputとした予測、推定、分類などの処理をAlgorithmの構築によって瞬時に行える事である。 1枚の画像だけを見て何が写っているかのような判断においては人間の脳が優れているものの、大量のデータInputを基にした組み合わせの選択や最適解に瞬時に辿り着くという目的においては機械に任せてしまったほうが効率的とも言える。昔から機械学習による予測、推定、分類などの処理は様々な手法として提案されており、どういった問題を機械に判断させるかという切り口で最適なものを人が選択する。下記表に機械学習の種類と特徴を纏めてみた。※ただし必ずしも6種類のいずれかに分類される訳ではない。例としてニューラルネットワークがあり教師あり学習であり深層学習にも位置する。 機械学習の種類 特徴 代表的なAlgorithm 備考 教師あり学習 正解

    機械学習の種類と特徴 - Y's note
    lEDfm4UE
    lEDfm4UE 2016/02/18
  • WebCrawler in Scala - Y's note

    Crawler in Scala 検索Crawlerを作る - Web就活日記 以前はnutchを使ったcrawlerを試してみましたが、今回はcrawler自体をscalaで書いているものをまとめようと思います。インターネットで紹介されているものの中には全然使えないものもあったりするので、選択には気をつけてください。個人的にはまとめた結果からJoup、HtmlUnitDriverが記述や設定が簡単で手軽に実行できるという点でお薦めしたいツールになっています。 nomad denigma/nomad JDK/JRE7、MongoDB、Debianを必要とします。これによって私はテストしませんでしたが。sourceの更新も2年前で止まってしまっていますね。。application.conf、filters.groovy、seeds.txtの3つのファイルを記述するだけで簡単に動かせて、結果を

    WebCrawler in Scala - Y's note
  • 検索Crawlerを作る - Y's note

    Solr in Action 作者: Trey Grainger,Timothy Potter出版社/メーカー: Manning Pubns Co発売日: 2014/04/05メディア: ペーパーバックこの商品を含むブログを見る Nutch + Solr + Hbase + Zookeeper Nutchで特定のWebPageをCrawlingしてSolrのIndexを作ろうとした時にかなり嵌ってしまったので作業のメモを記録しておきます。(※タイトルに語弊があるようですが、検索Crawler自体を作るという話ではありません。)特にNuth/Hbase間のVersion依存があるので、installしてみたけど動かなかったという人の参考になればと思います。Webを色々と探してみるとNutch2.2.1とHbase0.90.Xを組み合わせると良いようです。僕が試してみた環境は以下のものです。因

    検索Crawlerを作る - Y's note
  • 男なら潔くC言語書けよと言われた話。〜mod_db,mod_dbdの実装〜 - Y's note

    C実践プログラミング 第3版 作者:Steve Ouallineオライリー・ジャパンAmazon 恩師に言われた言葉 Geek女優の池澤あやかさんに会いたいと思っている@yutakikuchi_です。 池澤さんはRubyが出来てSFCで女優さんなんて羨ましいですね〜。僕なんてRubyは得意じゃないし東京とは言えないような都心から離れた場所の地味な国立大だし、何よりお金も無いパンピーだしね〜。 僕の学生時代にもRubyはあったんですけどRailsはまだ出始めでそんなに流行っている雰囲気は無かったし、Webを書くには面倒くさいJSP/ServletかPerlかって感じでした。ApacheのModuleでWebを書ける事も学生ながら知っていたんですが、ポインタ、メモリの動的確保/解放の間違いが頻発して開発効率が落ちるから極力Javaで、どうしてもCを書かなければ行けない時はC++で逃げてました。

    男なら潔くC言語書けよと言われた話。〜mod_db,mod_dbdの実装〜 - Y's note
  • ログ集計システムを自前で作る - Y's note

    Index ログ集計システムの要件 DB設計 データ保存方針 table設計 サーバ構成 Fluentd fluentd,fluent-plugin-mysql-bulk install td-agent.conf mysqlにデータが格納される事を確認する 集計用のバッチ その他 Table肥大化防止 可視化 ログ集計システムの要件 爆弾ログ処理班の@yutakikuchi_です。 ログ集計システムというものを作る時に皆さんはどのように対応していますか? 以下の候補から要件のレベルで使い分けをしている人が多いと予想しています。ざっくりの評価ですが、導入難易度、正確性、可視化、リアルタイム、長期集計、スケール、運用費用という点で評価を書いています。 ツール 導入難易度 正確性 可視化 リアルタイム 長期集計 スケール 運用費用 リンク GA(スタンダード) ○ × ○ ○ ○ ○ ○ Go

    ログ集計システムを自前で作る - Y's note
  • 「DSP/RTBオーディエンスターゲティング入門」読了 - Y's note

    DSP/RTBオーディエンスターゲティング入門 (Next Publishing) 作者:横山 隆治,菅原 健一,楳田 良輝インプレスR&DAmazon DSP/RTBオーディエンスターゲティング入門読了 あどてくやってます@yutakikuchi_です。 今日は帰省中の新幹線で読んだ「DSP/RTBオーディエンスターゲティング入門」についてのまとめを書きたいと思います。すごく基礎的な事しか書いてなかったり同じ説明が何度も繰り返されたりしていますが、あどてくやあどまーけてぃんぐに関わっている人は読んでおいて損はないかと思いました。一言での内容をまとめると「DSPを導入するとオーディエンスデータが見えるから施策が打ちやすいよ!欲求施策にはリタゲが効果的だよ!」って感じかなと。個人的にはもう少しDSPの予測技術について内容を書いて欲しかったなぁというところもあったりしました。下記で記載する内

    「DSP/RTBオーディエンスターゲティング入門」読了 - Y's note
  • Redisにマルチプロセスで接続する時に気をつけたい事 - Y's note

    Redis in Action 作者:Carlson, Josiah L.Manning PublicationsAmazon Redis 広告配信やっています@yutakikuchi_です。 Redisの内部処理が1スレッドで受けているようなので、マルチプロセスからRedisに書き込み処理を大量に流した時にどうなるのかを検証してみました。言語はCを、Libraryはhiredisを使います。redis/hiredis hiredisを使って単一プロセスで実行した場合と、Apache Moduleにhiredisを組み込んでマルチプロセスの実行状態で検証します。検証機はCentOS6.4です。 hiredis Redisのinstall、version確認、起動 RedisのVersionは2.4.10です。 $ sudo yum install redis -y $ redis-serv

    Redisにマルチプロセスで接続する時に気をつけたい事 - Y's note
  • Object Oriented JavaScriptの入門 - Y's note

    謝罪 Object Oriented JavaScriptの入門 - Yuta.Kikuchiの日記 2013/08/27に公開したObject Oriented JavaScriptの記事ですが、prototype周りの説明がいい加減だったため内容を一旦削除することにしました。多くの方にBookmarkして頂いたお陰でホットエントリーにも掲載されたのですが、正直それに見合う内容ではありませんでした。 あやふやな知識を書いてしまったのは僕の勉強不足が原因です。ネットで収集した情報だけで自分の知識を固めて行くのは危険だという事を身にしみて感じました。同時に今回とても悔しく情けない思いもしたので、必ずや正しいJavaScriptのオブジェクト指向知識を身につけて再投稿することをここに宣言します。 "I shall return!" (function() { console.log( "I s

    Object Oriented JavaScriptの入門 - Y's note
  • プロセス管理の初歩テクニック - Y's note

    Index 一言 Terminalログアウト後もプロセスを残す プロセスの2重起動防止 簡単に不要なプロセスをkillする tmuxの薦め 一言 はてなって不思議なコミュニティーで具体的な実装や調査分析よりも便利なコマンドとかを紹介するネタが何故か重宝されるようなので、良く使うプロセス管理系コマンドの初歩テクニックを書いてみます。( コマンドの学習をより必要とする人が多く一般的な話だからでしょうか? ) Terminalログアウト後もプロセスを残す 単一の処理で長時間かかってしまうようなプログラムを実行後にログアウトするとプロセスが消えて悲惨な目に遭います。tmuxやscreenを使って再起動可能な設定をしている人は特に気にする必要はありませんが、これらを使っていない場合はnohupでログアウト後もプロセスを残しましょう。 $ vi nohuptest.sh #!/bin/sh sleep

    プロセス管理の初歩テクニック - Y's note
  • MongoDBのCapped CollectionとTailable Cursorを使ったRealTimeAccess集計 - Y's note

    Index RealTimeAccess集計 Capped Collection Tailable Cursor まとめ RealTimeAccess集計 RealTimeAccess集計をするためにMongoDBの利用を考えます。サーバーの構成は上図のようなイメージで各種ApplicationServerからFluentdでLogAggregatorにRealTimeでLogデータを転送し、LogAggregator MasterがMongoDBにFluentdで書き込んで行きます。ここで言うRealTimeAccess集計の機能要件を整理すると以下のようになります。 Access発生後、1分以内で集計結果をWebツール上で確認したい。集計区間も1分単位など。 複数条件が指定可能で、柔軟なCross集計がしたい。 RealTimeAccess集計のSystem負荷を出来る限り抑えたい。

    MongoDBのCapped CollectionとTailable Cursorを使ったRealTimeAccess集計 - Y's note
  • データ集計コマンドを極めてシステム処理と業務速度を爆速化するお話 - Y's note

    Index データ集計コマンド 爆速で検索したいぜ! lookを使う LC_ALL=Cを設定する データのランダムサンプリングがしたいぜ! sedを使う awkを使う sortの--random-sortを使う Script言語を使う shufを使う ランダムサンプリング速度比較 合計と平均値を集計したいぜ! 列データ取得 重複行のカウント 合計値出力 平均値出力 複数ファイルのデータ結合がしたいぜ! 共通項目での結合 同じ行数での結合 まとめ データ集計コマンド joinコマンドが便利過ぎて生きるのが辛い - Yuta.Kikuchiの日記 lookコマンドによる二分探索が速すぎて見えない - Yuta.Kikuchiの日記 今日はデータ集計を行う上で絶対に覚えておいた方が良いコマンドと知識を紹介したいと思います。これを身につければシステム処理と業務効率化に大きく繋がると思います。この記

    データ集計コマンドを極めてシステム処理と業務速度を爆速化するお話 - Y's note
  • 【進撃の巨大データ】RealTimeLog集計を目的としたRedisの活用 - Y's note

    Log集計の設計を再考 【進撃の巨大データ】Log集計用DBとシステム構成の美しい設計を考える - Yuta.Kikuchiの日記 人生を前向きに楽しむことを心に誓った@yutakikuchi_です。最近はこのブログで【進撃の巨大データ】というタイトルで何回かBigDataに関する記事を書いています。前回はLog集計用DBとシステム構成の美しい設計を考えるという題でInnoDB、InfiniDBを使ったLog集計のmerit/demerit、SystemPerformanceについて記述しました。それから時間をおいて再考し、InnoDBを使う場合のメリット/デメリットと注意事項が不足している事に気づいたのでここで追記します。更に集計の緊急度に合わせて使用するDBを変えます。リアルタイムではRedis、定期処理ではMysqlを使って集計することを試してみたいと思います。 Log集計方法のme

    【進撃の巨大データ】RealTimeLog集計を目的としたRedisの活用 - Y's note
  • Hadoop Oozie設定からPigのPythonUDFを利用するまでのまとめ - Y's note

    Hadoop 第2版 作者: Tom White,玉川竜司,兼田聖士出版社/メーカー: オライリージャパン発売日: 2011/07/23メディア: 大型購入: 9人 クリック: 182回この商品を含むブログ (24件) を見る Oozie OozieとはHadoop MapReduceのジョブ管理システムの事でMapReduceの定期処理化や複数のMapReduceの実行し結果を一つにまとめるなど一連の処理フローとして定義することができる優れものです。Oozie自体はJava/Tomcatで作られているようです。Oozieを動かすために開発者は以下のものを用意しなければなりません。 ファイル 必須 記述方式 用途 設置場所 MapReduceプログラム 必須 Java,Streaming,Pig/Hive等 MapReduce実行 HDFS workflow 必須 xml OozieJo

    Hadoop Oozie設定からPigのPythonUDFを利用するまでのまとめ - Y's note
  • 【進撃の巨大データ】Log集計用DBとシステム構成の美しい設計を考える - Y's note

    [:W560] Log集計用DB設計 考える問題 Document無しのAgile開発をガチで推奨したい@yutakikuchi_です。【進撃の巨大データ】の第2回目として巨大アクセスLog集計用DBの設計について勉強した内容についてメモしたいと思います。DB周りはそこまで詳しく無いので詳しい皆様からの突っ込み大歓迎でございます。また図々しいですが知恵をください(笑)。 今日の主目的は下の2要件を叶えるためのDB設計を考える事です。特に問題になるのがRealTimeの話でTableにLogDataを書き込む処理と集計のSQLをどのように組み立てるか、それ以外にもSystemPerformanceとArchitectureにも関わってきます。 リアルタイムで大量データを集計したい 定期処理で大量データを集計したい 使うもの Fluentd : Fluentd: Open Source Log

    【進撃の巨大データ】Log集計用DBとシステム構成の美しい設計を考える - Y's note
  • 【進撃の巨大データ】自作ApacheModuleとRedisでWebBrowserを一つ残らずUnique管理する - Y's note

    BrowserID管理の必要性 BehaviorTargeting調査レポート - Yuta.Kikuchiの日記 進撃の巨人とADTechnologyの面白さを最近の楽しみとしている@yutakikuchi_です。BigDataという言葉が大変流行っていますが、巨大な力を持つ大量のユーザーアクセスとそれから生まれるログ、その処理と分析に追われるエンジニア/データサイエンティストはまさに進撃の巨人と人間の闘いのようです(笑)この記事のタイトルは進撃の巨人でエレンが言った「巨人を一匹残らず駆逐してやる」を文字っています。今日はそんな巨大データを扱うADTechnology分野のUserTrackingに欠かせないBrowser識別子とUnique管理について触れたいと思います。ADTechの面白さを少し話しておくと検索やKVS等の最新技術だけでなく機械学習や統計のアカデミック領域の知識も必要

    【進撃の巨大データ】自作ApacheModuleとRedisでWebBrowserを一つ残らずUnique管理する - Y's note
  • Machine Learning With Hadoop - Y's note

    Machine Learning: A Probabilistic Perspective (Adaptive Computation and Machine Learning series) 作者: Kevin P. Murphy出版社/メーカー: The MIT Press発売日: 2012/08/24メディア: ハードカバー購入: 1人 クリック: 26回この商品を含むブログを見る Big DataのMachine Learning Daily数百ギガバイトのAccessLogからDataMiningに必要なFeatureをかき集めるのにスタンドアロンの端末で処理を行うには時間が掛かりすぎます。バッチ処理で1日以内にUserのAccessLogを整形、必要な部分を取り出してDataMining/Machine Learningに掛けて、Userが利用するSystemに反映して行こうと

    Machine Learning With Hadoop - Y's note
  • 誰もが一度は陥る日付処理。各種プログラミング言語におけるDateTime型/TimeStamp型の変換方法のまとめ - Y's note

    日付型の変換処理 Date/Timestamp変換のまとめ - Yuta.Kikuchiの日記 10言語のプログラミング言語に対してそこそこの知識を保有している@yutakikucです。いろんなプログラミング言語を使用していると文法を覚えるのは大変ですよね。PHP書いている途中からJavaScriptの文法を誤って書き始めたり... それぞれの言語の文法の違いを事細かく覚える事は無理に近いです。今日はそんな各種言語仕様の記述で難解なDateTime/TimeStampについて紹介したいと思います。扱うのはWeb系のメジャープログラミング言語のSQL/C++/Java/JavaScript/Perl/PHP/Python/Rubyになります。Mysqlからデータを取り出した後や、WebAPIから取得したデータを表示用の日付フォーマットに変換する事があると思うのでそこで利用できる知識になるかと

    誰もが一度は陥る日付処理。各種プログラミング言語におけるDateTime型/TimeStamp型の変換方法のまとめ - Y's note
  • MongoDBの集計機能が便利過ぎて泣けてくるお話し - Y's note

    MongoDBイン・アクション 作者: Kyle Banker,Sky株式会社玉川竜司出版社/メーカー: オライリージャパン発売日: 2012/12/14メディア: 大型購入: 5人 クリック: 55回この商品を含むブログ (4件) を見る MongoDB集計機能 CentOSでNginxのログをFluentdを使ってMongodbにリアルタイムで格納する - Yuta.Kikuchiの日記 時給3000円のCEOと揶揄されている@yutakikucです。今日は簡単にMongodbのログ集計機能を紹介します。機能が豊富過ぎて泣けてくるんで、ログ解析する人は是非使ってみて下さい。FluentdでMongodbNginxLogを流し込む設定は上のエントリーを参照して下さい。次回はAggregationFramework/MapReduce周りについて触れたいと思います。 泣ける話 : 集

    MongoDBの集計機能が便利過ぎて泣けてくるお話し - Y's note
  • R言語でSVM(Support Vector Machine)による分類学習 - Y's note

    サポートベクターマシン入門 作者: ネロクリスティアニーニ,ジョンショー‐テイラー,Nello Cristianini,John Shawe‐Taylor,大北剛出版社/メーカー: 共立出版発売日: 2005/03メディア: 単行購入: 8人 クリック: 135回この商品を含むブログ (41件) を見る SVMとは Support Vector Machineの略で教師あり学習に分類されます。線形、非線形の識別関数があり現在知られている多くの学習モデルの中では最も優れた識別能力があるとされています。いわゆる2値分類を解くための学習モデルであり、線形しきい素子を用いて分類器を構成します。訓練データにおける各データ点と距離が最大になるマージン最大化という基準で線形しきい素子のパラメータを学習させます。シンプルな例は与えられたデータ集合を全て線形に分離する事です。SVMはカーネルトリックという

    R言語でSVM(Support Vector Machine)による分類学習 - Y's note
  • joinコマンドが便利過ぎて生きるのが辛い - Y's note

    Linuxシステムプログラミング 作者: Robert Love,ロバートラブ,千住治郎出版社/メーカー: オライリージャパン発売日: 2008/04/16メディア: 大型購入: 5人 クリック: 181回この商品を含むブログ (29件) を見る 結合 Unix/Linuxの標準コマンドで2つのファイルの共通keyで連結することができます。共通keyでの結合にはjoinコマンドを利用します。joinによりSQLのinner joinに近いことがコマンドだけで出来てしまいます。今までテキスト処理をコマンドで行う事が少なかったのでjoinの活用方法を知りませんでしたが、今回調べた内容を記録します。似たコマンドとしてpasteというものもあり、こちらは同じ行数の内容を単純に結合します。そちらについても簡単に紹介します。 join join前にsort joinコマンドを利用する場合は2つのファ

    joinコマンドが便利過ぎて生きるのが辛い - Y's note