サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ドラクエ3
tech.albert2005.co.jp
はじめに 当ブログでは Apache Spark プロジェクトの機械学習ライブラリ MLlib について何度か取り上げました。 Spark / MLlib の K-means を Java から利用してみる Scala ではじめる Spark / MLlib の単純ベイズ分類器 今回のエントリでは MLlib の協調フィルタリングについて書きます。 アルゴリズムの簡単な解説と Java からの利用方法、性能評価実験などの話をします。 Spark 1.1.0 が9月にリリースされてからしばらくたってしまいましたが、1.1.0 から実装された機能も紹介します。 少し長くなるので前・後編に分かれます。 以下では Spark 1.1.0 を想定しますが、このあたりは今も発展中であり、以降のバージョンではまた違う話になっている可能性が高いのでご注意ください。 MLlib における協調フィルタリング
はじめに おっと、またまた会いましたね。文字コードおじさんです。前回、Unicodeにおける結合文字列という話題を取り上げました。思わず「いやあ、結合文字列は強敵でしたね」と口走りそうになる代物でしたが、今回はそれに関連したUnicode正規化のお話をしてみようと思います。 ざっと前回のおさらい 詳しいことは前回の記事をご覧いただくとして、 最低限の用語についてざっくりおさらいしておきましょう 結合文字列 複数の文字を使って見かけ上の1文字を表現する仕組み 「て(U+3066)」 の後に、 「濁点(U+3099)」 を配置することによって 「で」 を表現する 合成済み文字 「で(U+3067)」などのあらかじめ合成されている文字 Unicode正規化 結合文字列を合成済みに統一したり、合成済み文字を結合文字列にしたりする処理 少々語弊がありますが、イメージがつかめればOKです。 正規化の4
ごあいさつ 皆様はじめまして、文字コードおじさんです。細々とカメラ屋を営んでおりましたが、エンジニアとしての技量を評価され、ALBERTのシステム開発・コンサルティング部で働くことを許されました。特技はサーバーの統廃合です。 今回は最初ということですが、Unicodeにおける全角・半角の取り扱いについて触れてみようと思います。なお、さも連載するかのように第1話と銘打っていますが、上層部の無慈悲な裁決によっては1話打ち切りもありえますので、その際はご容赦ください。 固定観念を捨てよう 「全角50文字、半角100文字まで」といったような文言を見かけたことがあると思います。 特にUnicode以前のレガシーな処理系では全角文字に2バイト、それ以外は1バイトという割り当てが慣習となっていました。 このため、「全角=2バイト文字、半角=1バイト文字」という観念が世間に定着しているのが現状です。 しか
ご無沙汰しております。システム開発部の potter です。 Jubatus のバースト検知を使ってみた話以来となるので久々の投稿となります。 最近運用チームから開発チームに異動したのですが、Scala を使うプロジェクトがありそうということでその勉強を始めました。 今回はそんな Scala 歴 2 週間足らずの私が人生で初めて書いた Scala プログラムを晒してしまおうという、ちょっぴり M な香りのする企画となります。 (ただし晒しているのは Scala の先輩であるシステム開発部の uraura 先生にいくつかアドバイスを頂いて修正したプログラムになります。Special tanks to uraura!! ) 作成したプログラムの内容 単純パーセプトロンによる識別精度を n-fold cross validation により評価するプログラムを作成しました。1 続きを読む Sca
みなさまこんにちは。池内です。 Redis 3.0.0 から正式な機能として盛り込まれたRedis Clusterの構築と基本的な動作について紹介します。 ※ 期せずして本日 LINEさんの事例 LINEの100億超/日メッセージを支えるRedis・HBaseのスケールアウト・アップ戦略(A-5) #linedevday – Togetterまとめ が話題になっていますが、合計48TBものメモリサイズで運用しているようです。凄いですね。 Redis Cluster とは 疑似的なマルチマスタ構成 複数ノードでデータをシャーディングできる スレーブ構成を採用すれば耐障害性の向上も可能 概ね上記のような内容です。マルチマスタを「疑似的」としているのは、実際にデータが各ノードに伝播しているわけではないからです。Redis Clusterは、あるレコードをどのノードに保存するかを把握しておき、ノー
はじめに 皆様こんにちは。Spring Boot遊びがタノシイな文字コードおじさんです。 今回はSpring Bootで作成したWEBアプリをSpring Boot Actuator+Zabbixで簡単に監視する方法をご紹介します。 んん?Spring Bootをやったことが無い??そんな方は下記のチュートリアルで体験する以外、ありえませんぞww GradleまたはMavenがあればホントに15分でできるので、ぜひお試しを! Building an Application with Spring Boot Spring Boot Actuatorの概要と導入 Spring Boot Actuatorの導入 Spring Boot Actuatorは監視・管理用の機能を追加してくれるものです。導入は至って簡単で、依存関係に追加するだけでOKです。 Gradleならdependenciesに1
まえがき Redshiftで遊ぼう~共起分析~(前編)の続きです。 前回作成したクエリではまだ DS_BCAST_INNERが発生しており、改善できる余地があるように思われます。 今回のエントリではこれを解消するとともに、クエリを作っていくときの注意点をまとめてみます。 DISTKEYは1テーブルに1つだけ 前回のエントリで以下のように書きました。 ここはどうしても2列が結合に使われてしまうために、 DISTKEYを付けられないのです ではどうしようもないのかというと、そんなことはありません。 こういうときのために DISTSTYLE ALL があるのです。 改訂その2 ではさっそく・・・ DS_BCAST_INNER をすべて回避した!というのがこちら -- 計算用のログテーブルを作る CREATE TABLE tmp_target_log ( item_id BIGINT encode
まえがき 弊社のsmarticA! DMPでは、 DWHとしてAmazon Redshiftを使用しています。 RedshiftはPostgreSQL 8.0.2をベースに開発されており、SQLを使った柔軟な分析が可能です。 今回のエントリでは、Redshiftに蓄積されたログデータを用いて共起分析をやってみようということで、 共起性の指標となるさまざまな係数を計算してみます。 その上で、Redshiftを使うときの注意点をまとめてみます。 環境 Redshift (dw2.large) を2ノード使用しています。8xlargeでごり押しできる日を夢見ながら質素に生きています。 共起性の指標について 今回は適当な大きさのログを使って以下の4種類の指標を求めてみようと思います。 Dice 係数 Jaccard 係数 Simpson 係数 Cosine 係数 各係数については、 弊社テクノ
みなさんこんにちは、ごきげんよう。池内です。 今回から、ALBERTが自社サービスで利用しているAmazon Web Serviceの構成を紹介していくシリーズを(勝手に)始めることとなりました。 能書きは抜きに早速参ります。第1回はサイト内レコメンドエンジン「Logreco」の構成をご紹介します。 AWS構成図 ※ 実際の構成とは異なる点があります。ご紹介目的の簡略図とご理解下さい。 サービスの特徴 「Logreco」は、「この商品を見ている人は、この商品も見ています」というキャッチで利用される、Webサイト向けレコメンデーションサービスです。フロントエンドは、ログ収集や推薦商品のインプレッションを行う役割を担うJavaScriptやWeb APIを備え、裏側では「アソシエーション分析」と呼ばれる分析アルゴリズムを用い、大量のログデータの演算を行っています。 演算に利用するアクセスログは
はじめまして。 システム開発・コンサルティング部の potter と申します。日頃は smarticA!DMP の運用をしております。 さて、 soonraah ガエルの記事を読んで「自分も何かやりたい!」と思い Jubatus という オンライン機械学習向け分散処理フレームワーク を使ってみました。今回は先月に新機能として追加されたばかりのバースト検知を試してみます。 ではでは、少しの間お付き合い頂けますと幸いです! バースト検知とは? バースト検知って何?という方もいらっしゃるかと思いますが、 Jubatus Blog にも記載されているように「特定のキーワードを含むツイートが突然増えたことを検出する」といったことを可能にする技術です。 具体的な例として「金曜ロードショー ラピュタでバルス!現象」1について考えてみます。 Twitter ストリーム上のツイート系列を考えた時、「バルス」
はじめに 前編では MLlib で実装されている協調フィルタリングについて、アルゴリズムの面から解説してみました。 いわば理論編です。 後編は実践編として Java コードや性能評価実験の結果を見ていきます。 MLlib 協調フィルタリングの実行 MLlib の協調フィルタリング org.apache.spark.mllib.recommendation.ALS を利用する Java のコード例を以下に示します。 import org.apache.spark.api.java.JavaRDD; import org.apache.spark.mllib.recommendation.ALS; import org.apache.spark.mllib.recommendation.MatrixFactorizationModel; import org.apache.spark.mll
はじめに 二人を最初から一つにしておけば、何も問題など起こらなかったのだ。 一つのものを二つに分けたその時から、長い物語が始まる。 おや?また会いましたね。どうも、文字コードおじさんです。 もう半年近くも前になりますが、前回の投稿はだいぶ反響があったようで驚いております。ありがとうございます。 今回も文字コードネタですが、Unicodeにおける結合文字列を取り上げてみようと思います。 高度に発達した文字コードは地獄と見分けがつかない 次の画像はTwitterの投稿フォームですが、おかしな点があります。わかりますか? そうです。4文字しか入力していないはずなのに 5文字分とカウント されていますね。おかしいと思いませんか?あなた? 改行とかスペース入れてるんじゃねーだろうな?とか言わないで下さいね? さらに次の画像を見てみてください。 こちらは4文字とカウントされていますね。先のものとは一体
はじめに 以前のエントリにて Spark / MLlib の K-means を取り上げましたが、今回は同じく MLlib にて提供されている機械学習アルゴリズムの一つ、 単純ベイズ分類器 (Naive Bayes, ナイーブベイズ) を使ってみましょう&K-分割交差検証をしてみましょう、 というエントリです。 単純ベイズ分類器そのものについては読者の皆様はご存知、という前提でこの後の話を進めてしまいますので、 「ちょっと良くわからないよ待ってくれ!」という方は 単純ベイズ分類器 – Wikipedia 第3回 ベイジアンフィルタを実装してみよう:機械学習 はじめよう|gihyo.jp … 技術評論社 第8回 自由回答式アンケートで顧客の声を聞くための考え方:Mahoutで体感する機械学習の実践|gihyo.jp … 技術評論社 などのページを一読することをおすすめします。 単純ベイズ分類
はじめに JenkinsとPythonのテストフレームワーク「nose」を使って、 簡単にテストの自動化を実現してしまおう!というのが今回の目標です。 「nose」を利用すれば、「test(もしくはTestでも可)」から始まるPythonファイルを、 自動で識別、実行してくれるので、プログラムの規模が大きくなった場合でも比較的簡単にテストを行うことが出来ます。 更にその実行結果を「HipChat」を通じてメンバーにテスト結果を周知したり、 テスト結果をJenkinsで読み込んでグラフ化したり、より効率的なテストの実行を目指します。 上記の目標を基に、JenkinsとPythonのテストを連携させる方法をまとめてみました! 全体的な流れ 以下の通りで進めていきます! JenkinsでPythonテスト自動化、HipChatに通知するため事前準備を行う 作成したジョブの設定を変更する テスト
はじめに さる 5/30、今か今かと待ち望まれていた Spark 1.0 が 遂にリリース されましたね! その前日 5/29 には都内で 実際のところ Spark ソースコードリーディング だった Hadoop ソースコードリーディング #16 が開催されるなど、 Spark についての注目度が俄然高まってきているように思えます。 そんなわけで、0.9.1 からの変更点や機能追加について、Java と機械学習に携わるエンジニアの視点で 今回の 1.0 リリース内容をまとめてみました! 何が変わったのか? Spark : Java 8 のラムダ式サポート Java エンジニア的に今回の一番の変更点は、何と言っても Java 8 のラムダ式への対応、ですね。 今年 3 月の Java 8 正式リリース後、主に Stream API の周辺においてラムダ式を書く機会が徐々に増えつつあるかと思い
はじめに 先日の Mahout Project からのアナウンス “Goodbye MapReduce” にもあるとおり、今後の大規模データ処理の基盤として Apache Spark がここ最近注目されています。 そんな今熱いプロダクトである Spark に関して、その上で動く機械学習ライブラリ MLlib の K-means 実装を わけあって Java から利用してみる機会があったので、その使い方や特性を簡単にまとめてみました。 MLlib の K-means 実装について 現時点 (バージョン 0.9.1) での K-means 実装について、簡単に説明します。 距離計算は「ユークリッド距離」しか提供されていません。 KMeans#findClosest() → MLUtils.fsuaredDistance() のあたりを読むと分かるかと思います。 Spark の JIRA を見て
はじめに さる 1/17(金)に開催された CROSS 2014 の「機械学習 CROSS」にパネラーとして登壇し、マーケティング分野における機械学習の活用状況について語ってきました。このエントリでは、同セッションで語ったことを整理し、また語りきれなかったディスカッショントピックについて、わりと個人的な想いを綴っています。 なお、セッション中のツイートは 機械学習CROSSまとめ こちらにまとめられていますので、あわせてご覧いただけると幸いです。 また、セッションオーナーの PFI 比戸さんや、パネラーとして同席された FFRI 村上さん、CROSS のセッションレポーターによるレポート記事が各種ブログ・メディアに掲載されています。 機械学習CROSSをオーガナイズしました 機械学習時代がやってくる――いいソフトウェアとマルウェアの違いは? 「機械学習CROSS」レポート 他のパネラーのご
はじめに 本エントリはデータが曖昧に分類されるのをグラフ描画して見てみたいという動機で、 適当なサンプルデータに対してファジークラスタリング手法の1つである fuzzy k-means 法を実施してみたという内容です。 fuzzy k-means は Hadoop 上で動く機械学習ライブラリ Apache Mahout により実行したので、そちらのコマンド等も記載します。 k-means もいいんだけど… fuzzy k-means は知らないけど k-means なら知っている、という方もいらっしゃると思います。 k-means 法は最もオーソドックスなクラスタリング手法でアルゴリズムも理解しやすく、様々な BI ツールで実装されています。 また、実データで上手くクラスタリングできることが多く、いろいろなところで使われているのではないでしょうか。 しかし、k-means にもいくつか問題
このページを最初にブックマークしてみませんか?
『tech.albert2005.co.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く