playbookの開発中は動作確認しながら開発していくと思いますが、そんな時は特定のtaskを特定のhostに実行すると動作確認が楽です 以下のように実行します ansible-playbook -i test-inventory -l test-server --start-at='target task name' --step test.yml
playbookの開発中は動作確認しながら開発していくと思いますが、そんな時は特定のtaskを特定のhostに実行すると動作確認が楽です 以下のように実行します ansible-playbook -i test-inventory -l test-server --start-at='target task name' --step test.yml
Webサーバーだけの機能を持つサーバーの場合、以下のようにSSH(SFTP)、HTTP、HTTPSのポートを許可して、他の通信は拒否する設定にします。 よく使われるサービスのポート番号は、ウェルノウンポート番号(WELL KNOWN PORT NUMBERS)といって 0〜1023までのポート番号のどこかに割り当てられています。 詳しくは、以下のページをご覧ください。 TCPやUDPにおけるポート番号の一覧 - Wikipedia あなたのサーバーについて、どのポートを許可すべきかをあらかじめ調べておきましょう。 ファイアウォールiptablesの設定を行う それでは実際にiptablesの設定を行います。 はじめに、iptablesがインストールされていることを確認しましょう。 # which iptables /sbin/iptables whichコマンドで、iptablesがインス
今回はK近傍法を用いて手書き文字データを分類する. K近傍法は, あるデータのクラスを分類する際に, そのデータから距離が近い順にK個訓練集合からデータを取り出し, それらのラベルの投票によって分類対象のラベルを決定するシンプルなアルゴリズムである. 一見, 学習段階では何もしなくて良さそうだが, 与えられたデータと近いデータを効率的に探索するためのデータ構造を構築する必要がある. また, バリエーションとしてはラベルの投票の際に, 投票の重みを均一にせず, 距離に応じた重みを用いるものなどがある. scikit.learnで近傍法を扱うクラスは KNeighborsClassifier RadiusNeighborsClassifier の2つである. 前者は上で説明したK近傍法で, 後者は分類対象から近いものK個の投票ではなく, 分類対象から与えられた距離以内に存在するデータの投票によ
分析対象のデータは、日本統計学会公式認定 統計検定2級対応 統計学基礎の練習問題を一部加工。 day,Temperature,humidity,sunlighth,Wind 1,6.6,33.0,7.9,NorthWest 2,7.0,41.0,8.4,NorthNorthWest 3,5.9,48.0,5.2,NorthNorthWest 4,6.3,40.0,8.4,NorthWest 5,7.3,39.0,7.4,SouthWest 6,6.5,34.0,6.7,NorthWest 7,4.0,25.0,9.2,NorthWest 8,5.9,33.0,9.2,NorthNorthWest 9,6.1,46.0,9.1,EastNorthEast 10,3.4,27.0,9.2,NorthNorthWest 11,3.8,31.0,6.7,NorthNorthWest 12,5.1,
企画セッション1:学習理論 日時:11月25日(水) 10:35 – 12:35 担当:鈴木 大慈(東工大) 大規模機械学習のための事例と特徴のセーフスクリーニング 竹内 一郎(名工大) 講演スライド 大規模データに対する機械学習問題において,モデルへの影響が小さいと思われる事例や特徴をあらかじめ取り除いておくことができれば,効率的な学習が可能となる.特に,スパースモデリングではモデルが一部の事例や特徴のみに依存するため,モデルに影響を与えない事例や特徴を取り除いて学習してもすべてのデータを用いて学習した場合と同じモデルを得ることができる.しかしながら,一般にはどの事例や特徴が不要であるかを学習前に知ることができないため,ヒューリスティックなスクリーニングを用いると重要な事例や特徴を誤って除去してしまう誤検出リスクがある.一方,最近提案されたセーフスクリーニングと呼ばれるアプローチを用いる
A部門/東海支部 連携討論会「SDGs,一歩前へ」の参加申込は,10月9日(水)12:00 までです。皆さまのお申し込みを,お待ちしております。
WebRTCのVideo Captureで取得した画像を、リアルタイムで処理しても速度が落ちないのか試してみたら想像以上にうまくいった。 これなら、充分使用に耐えられる。 作ったのは、輪郭検出っぽいのやフレーム間データの差分を用いたものと、それを応用して輪郭が燃えるものや、動いた場所が光るもの。 輪郭検出は周囲のピクセルもみないといけないので、処理が重くなるんだけど、それでもリアルタイムで処理できた。 現行のGoogle Chromeなら、Dev版でなくても動作するが、MediaStreamを有効にする必要がある。 MediaStreamを有効にするには、アドレスバーに「about:flags」と入力しエンター、一覧の「MediaStream を有効にする」の「有効にする」をクリックして、Chromeを再起動する必要がある。 まだ試供的なもので、Flashにあるような確認ダイアログも表示さ
ただ、WebRTCで顔認識させようとすると遅くてしかたがなかった。 最初は速いこともあるが、10回ぐらい認識をさせるとすぐに遅くなる。 とりあえず、デモ。 そこで、チューニングをしてみることにした。 まず、JavaScriptの定番の高速化を試してみた。 例えば、正の数で使える「Math.floor(x)」を「(x | 0)」に、整数で使える「x * Math.pow(2, y)」を「x << y」にする等。 これで、10~30%高速化できた。 次に、遅くなっている部分を調べたら、Web Workersで分散するための仕組みが遅くなる原因だとわかった。 これは、Web Workersを使わない場合にも影響が出ていた。 じゃあ、Web Workersを使えば速くなるのかといえばその逆で、20倍遅くなっていた。 詳しくは調べてないけど、多分Workerスレッドに処理データを渡す時にJSON化が
Boostnoteを使用してみた 最近話題になっているBoostnoteを使ってみました。しかし今日、Boostnoteについて書かれたブログ記事がまだ少なかったため、今回は設定法や簡単な使用例の説明、使ってみた感想について記していこうと思います。 (この記事は随時更新予定です。) Boostnoteとは? boostnote.io 簡単に言ってしまうとプログラマのための"メモ帳"アプリです。使い方としては、 簡単なメモを取る よく使うコードをメモしておく この2種類が挙げられます。前者について、Boostnoteは他のテキストエディタに比べて起動が早くMarkdownにも対応しているので簡単に綺麗なメモをとることができます。また、後者が特にこのアプリの良い所だと思うのですが、後述するFinderを使うことで簡単にソースコードの使い回しができるようになります!よく使うソースコードや忘れてし
TL;DR Slack bot + Redisの環境をローカルに構築するのは大変>< RedisをコンテナにしたらどのOSでも一発で動かせる! Slack botもコンテナにしたらRedisコンテナとの連携も簡単! Docker Composeを使えばBotとRedisを1つのコマンドだけで起動できるよ Slack botをDockerコンテナ上で動かそう Slack等で運用するbot,例えばHubotやRubotyでデータの永続化をするためにはRedis等のKVSを利用することが多い. 今回はこのSlack bot(Ruboty) + RedisをDockerコンテナ上で動かしてみる. Redisコンテナ Redisについては公式にコンテナが提供されている.これをつかえばローカル環境にRedisを導入する必要が無いため,どんな環境でもdocker pull & docker runだけす
1. はじめに SoftLayer上のVyOSにL2TP/IPsecリモートアクセスの設定をして、Windows7 / 10クライアントから接続します。 <今回使用したVyOSは1.1.6(Heliun)です。VyOSのL2TPは「最初に接続したユーザが接続状態の時、別のユーザが接続できない」といった問題があります。(一人しか接続できない。) 過去のVyattaでも同じ問題があり、まだ解決していません。 複数ユーザでL2TP/IPsecリモートアクセスを使う場合は、OpenVPNやWindows2008/2012を検討したほうが良いと思います。 ちなみに、最初のユーザ(Aさん)が接続している状態で別のユーザ(Bさん)が接続しようとすると、下記メッセージが表示されBさんは接続できませんでした。 2. L2TPについて L2TPはレイヤー2で動作するトンネリングプロトコルで、暗号化の機能はあり
$ rpm -qi moreutils Name : moreutils Version : 0.49 Release : 2.el7 Architecture: x86_64 Install Date: Fri 29 May 2015 06:34:50 PM JST Group : Applications/System Size : 155340 License : GPLv2 Signature : RSA/SHA256, Tue 04 Mar 2014 12:35:02 PM JST, Key ID 6a2faea2352c64e5 Source RPM : moreutils-0.49-2.el7.src.rpm Build Date : Wed 26 Feb 2014 07:58:44 PM JST Build Host : buildvm-21.phx2.fedoraproj
Yahoo releases massive 13.5TB web-browsing data set to researchers Yahoo's business may be struggling, but millions of people still visit its site to read the news every day. That gives the company unique insights into browsing and reading habits, and today the company has released a huge swath of that data. The "Yahoo News Feed dataset" incorporates anonymous browsing habits of 20 million users b
I receive several errors when I attempt to install sbt on Ubuntu via aptitude with the instructions from the scala-sbt homepage: echo "deb https://dl.bintray.com/sbt/debian /" | sudo tee -a /etc/apt/sources.list.d/sbt.list sudo apt-get update sudo apt-get install sbt http://www.scala-sbt.org/0.13/tutorial/Installing-sbt-on-Linux.html First I get a package validation error and then a segmentation f
初日っぽく主に環境構築など導入部分について取り上げていきます。 Scalaに少し興味はあるけどまだやったことない!といった方に読んでいただけたら嬉しいです。 Scalaを使える状態にしてみる インストール 2つの方法を挙げてみます。 筆者は以下をMac OS X Mavericksで試しています。環境に応じて適宜読み替えてください。 2013.12.1現在の最新Scalaのバージョンは2.10.3です。 Homebrew Macの方はこれが一番楽かと思います。 その他のパッケージ管理ソフト(port、apt-get、yum)でも同じようにinstallできます。 但し最新のScalaではない可能性があるのでその点は注意してください。 公式サイトからダウンロード パッケージ管理ソフトに頼らない方、確実に最新バージョンを使いたい方はこちらの方法です。 まずはScalaの公式サイトから圧縮ファイ
Markdown記法のチートシートです。 記法はGitHub Flavored Markdownに準拠し、一部拡張しています。 Qiitaでシンタックスハイライト可能な言語一覧については、 シンタックスハイライト可能な言語 をご覧下さい。 Code - コードの挿入 Code blocks - コードブロック たとえば、「Ruby」で記述したコードをファイル名「qiita.rb」として投稿したいときは、 バッククオート(`) か チルダ(~) を使用して以下のように投稿するとシンタックスハイライトが適用されます。 コードブロック内でコードブロックを書きたい場合は異なる記号を使うことで書けます。
はじめに こんにちは。 この記事はApache Spark Advent Calendar 2015の19日目の記事です。 Sparkを使うにあたって困る点 Sparkを使っている皆さんなら実感しつつあると思いますが、Sparkには困った点もあります。 とりあえずサンプルを動かすだけ、であればそれほど苦労することは無いのですが、実際に大規模データを用いて使用し出すと、下記のような問題が頻発します。 適切なチューニングが施されていないとスピードが出ない 一部のコンポーネントはそもそも動かない(特にMLlib) 問題が発生した時、どこで発生したかがぱっとはわかりにくい そのため、ある程度内部構造か、チューニングの勘所をおさえておかないと苦労することになります。 優れてはいるんですが、その分ピーキーなフレームワーク、というのがMapReduceと比べた私の印象です。 そんなわけで、Sparkの内
Apache SparkがHadoopよりいけてそうなので調べて使ってみました。 Apache Sparkについて SparkとはHadoop(MapReduce)を拡張した次世代のビックデータ解析エンジン。 リッチなAPIがあるので、使うのがより簡単 より高速 対話的クエリ、ストリーミング、マシンラーニング、グラフ処理などをサポート HadoopのMapReduceの時はdisk上で計算が走っていたけれど、メモリ上で走らせることが高速化の要因の一つのようです。 コンポーネント 下記の代表的なコンポーネントがあるようです。 Spark Core Sparkの基本機能を含むコンポーネント Spark SQL Apache HiveのようにSQLを通してデータにアクセス Spark Streaming データのライブストリーミングを可能にするコンポーネント MLlib マシンラーニングのアルゴ
初めに 必要なソフトウェアのインストール giter8でプロジェクト作成 sbtでビルド&テスト sbtのEclipseプラグインでEcplise設定ファイルを出力 Eclipseにインポート という流れでやっていきます IntelliJ IDEAでもほぼ同じ手順で問題ないと思いますがIntelliJ IDEAを持っていないので試せていません 必要なソフトウェアのインストール Apache Spark 1.2.1対応のscala 2.1.0をインストールします sbtはビルドツールです giter8はプロジェクトのテンプレートを作成してくれるツール(テンプレートはgithubで管理されてます) brew cask install java brew install scala210 brew link --force scala210 brew install sbt brew insta
紹介 この投稿は、Advent Calendar 2015 .. NextGen DistributedComputing system をキッカケにして初めています! Advent Calendar1日目の記事です。 方針について Spark、SparkStreamingが初めての方でも順を追っていただければスムーズに理解できるよう書きたいと思います。 開発はScalaベースです。Spark処理を書くためにScalaガッツり使いこなせないと分からないわけではないですが、 基本的なことは必要かと思います。 Scala基礎を習得するためには下記リンク先を参照することをお勧めいたします。 https://gist.github.com/scova0731/2c405ea55488d804b366 SparkStreamingの紹介 SparkStreamingとは Sparkコアの拡張モジュー
はじめに 以下の文章についてApache Sparkを利用してWord Countを実行するコードを書いていきます。 Apache Spark is a fast and general-purpose cluster computing system. It provides high-level APIs in Java, Scala, Python and R, and an optimized engine that supports general execution graphs. It also supports a rich set of higher-level tools including Spark SQL for SQL and structured data processing, MLlib for machine learning, GraphX for g
[今の最新] sbt-assembly 0.14.1 + spark 1.5.2 でとりあえずspark-submitできるjarを作る設定ファイルScalaSparksbt name := "spark_collaborative_filtering_for_tweet_anime" //自分のアプリ名にする version := "1.0" scalaVersion := "2.11.7" libraryDependencies ++= Seq( ("org.apache.spark" %% "spark-core" % "1.5.2"). exclude("org.mortbay.jetty", "servlet-api"). exclude("com.google.guava","guava"). exclude("org.apache.hadoop","hadoop-yarn-a
この記事は, Spark, SQL on Hadoop etc. Advent Calendar 2014 - Qiita の 12 月6日のための記事です. 今回の記事では,最近話題になっている word2vec の Apache Spark 実装を EC2 上で動かす方法について解説します. word2vec とは? 自然言語処理に新風を巻き起こしたWord2Vecとは何か - 日経BigData の説明を拝借すると,word2vec とはつぎのような説明になります Word2Vecは、その名前の表す通り、単語をベクトル化して表現するする定量化手法である。例えば日本人が日常的に使う語彙数は数万から数十万といわれるが、Word2Vecでは各単語を200次元くらいの空間内におけるベクトルとして表現する。 それぞれの単語を200個の要素の組み合わせとして表現するため、このような手法は「分散表
import org.apache.spark.mllib.classification.{NaiveBayes, NaiveBayesModel} import org.apache.spark.mllib.linalg.Vectors import org.apache.spark.mllib.regression.LabeledPoint import org.apache.spark.mllib.linalg.Vectors import org.apache.spark.mllib.feature.HashingTF val htf = new HashingTF(10000); val pos_data = sc.textFile("test_pos.txt").map { text => new LabeledPoint(0, htf.transform(text.split
Sparkシリーズ第2弾です。今度はMLlibを使って協調フィルタリングを用いたレコメンデーションの実装を行います。 第一弾 【機械学習】iPython NotebookでSparkを起動させてMLlibを試す http://qiita.com/kenmatsu4/items/00ad151e857d546a97c3 環境 OS: Mac OSX Yosemite 10.10.3 Spark: spark-1.5.0-bin-hadoop2.6 Python: 2.7.10 |Anaconda 2.2.0 (x86_64)| (default, May 28 2015, 17:04:42) 本稿では上記の環境で行ったものを記載していますので、他の環境では設定が異なる場合もあるかと思いますのでご注意ください。また、基本的にiPython NotebookでのSparkの実行を想定しています。
前回はこちら はじめに 今日はsparkの標準ライブラリであるMLlibを利用してみます。 sparkにはMLlibを含め、4種類の標準ライブラリがあります。 他のライブラリに関しては、こちらを参照ください。 MLlibとは spark上に実装されている機械学習のライブラリです。 機械学習の実装はすごくムズカシイのですが、MLlibは割と簡単に試すことができ、サポートしているアルゴリズムも豊富なのでとっつきやすい気がします(私見です)。 とりあえず、協調フィルタリングを試してみます。 協調フィルタリングについてはこのブログが大変参考になりました。 実装手順 1. 必要なライブラリをimportする from pyspark.mllib.recommendation import ALS, MatrixFactorizationModel, Rating
リクルートライフスタイル Advent Calendar 2015の21日目の記事です。 仕事では全サービス横断のリアルタイムログ収集・可視化・分析基盤のシステムの開発運用をしています。 1. 何をやる? 最近話題のApache Spark MLlibを使って機械学習し、Spark Streamingでその学習したモデルを使って判定します。 全体図 体に取り付けた加速度センサーの値から、つけている人が「立っている」か「座っている」かを機械学習します。 さらに、その加速度センサーの値をリアルタイムに流し、学習したモデルから「立ち」「座り」状態を予測しようというシステムです。 データの送信には小型でLinuxが動くボードのIntel Edsionを使います。 1.1. なぜ加速度センサーの値で判定できるのか? 加速度センサーには地面の方向に向かって重力加速度がかかります。 重力加速度は、水平に
概要 spark mllibの SVM LogisticRegression NaiveBayes の精度測定を、 news20 rcv1 に対して実施。その結果を記載する。 各アルゴリズムのパラメータ設定は Svm L2正則化のみ numIteration = 1000 SGD, miniBatchFraction = 1.0 regParam=c= 1.0* 10^-3 〜 1000まで測定 LogisticRegression (LR) L2正則化のみ numIteration = 1000 SGD, miniBatchFraction = 1.0 regParam=c= 1.0* 10^-3 〜 10まで測定 NaiveBayes (NB) lambda=1.0*10^-3 〜 1000 測定結果 news20 NB lambda 正例F1値 正解率
元ネタ Spark MLlib の K-means を Java から利用してみる - ALBERT Engineering Blog のScala移植版です。 とても丁寧な解説付きなので、まずはそちらをご覧ください。 Scalaコード 変数名やデータ構造および出力フォーマットは、元ネタに合わせています。 言語以外に変更した点は、下記の通りです。 "iris.txt"が見当たらなかったので、"iris.data"を使いました。 ヘッダ行ではなく空行を取り除いています。 http://archive.ics.uci.edu/ml/machine-learning-databases/iris/ Sparkのバージョンを上げているため、特徴ベクトルの型がMLib独自のものになっています。 Java 8 & 機械学習の視点でみる Spark 1.0 リリース - ALBERT Engineeri
環境 Mac OS X Version 10.9.5 Scala 2.10.4 Spark 1.1.0 Spark MLlib 1.1.0 sbt 0.13.1 準備 /root/to/project/path |-- build.sbt |-- src | |-- main | | |-- scala | | | |-- Stoppable.scala | |-- test | | |-- scala | | | |-- SparkMLlibCorrelationSpec.scala name := "Spark MLlib examples" version := "0.0.1-SNAPSHOT" scalaVersion := "2.10.4" scalacOptions ++= Seq("-Xlint", "-deprecation", "-unchecked", "-featur
以下では自分が運用しているトレンド解析システムで使用しているスパムフィルターの実装方法について解説していきます。 スパムフィルターで用いる機械学習 スパムフィルターの実装では機械学習の中でも「教師あり学習」と言われるものを用います。これはラベルと特徴量からなるデータから、どのような特徴を持つものがどのようなラベル(カテゴリ)に当たるかを自動的に学習するものです。 具体的に見ていきましょう。例えばTwitterには以下の様なツイートがあります。 1.眠い……でも起きなきゃ 2.同点から中田の3ランホームラン! 3.[無料でカンタン]に魔法石ゲット♪ ⇒http://xxx.xyz/999 4.相互フォローで繋がれる人募集中です!すぐフォロー返しますのでよろしくお願いします! リツイートもしてほしいな♪ #followme #refollow #followback #相互フォロー #soug
import org.apache.spark.SparkContext import org.apache.spark.mllib.tree.RandomForest import org.apache.spark.mllib.util.MLUtils object HelloRf { val sc = new SparkContext("local", "HelloRf") // Load and parse the data file. // libsvm style iris Data - http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/multiclass/iris.scale val data = MLUtils.loadLibSVMFile(sc, "iris.scale") // Split the data i
決定木はそのロジック的にモデルの解釈がしやすくて、意外と現実世界で利用されることが多いような気がします。 そんなわけで、Spark MLlib (ML Pipeline) の 決定木 のモデルについて、その構造を標準出力する機能を作ったのでメモとして残して置きます。 package biz.k11i.spark.misc import org.apache.spark.ml.classification.DecisionTreeClassificationModel import org.apache.spark.ml.tree.{CategoricalSplit, ContinuousSplit, InternalNode, LeafNode} /** * spark.ml の DecisionTreeClassificationModel の木構造を標準出力に書き出す。 */ obje
微分係数の多変数関数バージョンであるヤコビ行列,およびヤコビアンについて解説します。具体例として,二次元・三次元極座標変換のヤコビアンを求めてみます。 状況設定 xundefined=(x1,x2,⋯ ,xn)⊤\overrightarrow{x}=(x_1,x_2,\cdots,x_n)^{\top}x=(x1,x2,⋯,xn)⊤ を決めると yundefined=(y1,y2,⋯ ,ym)⊤\overrightarrow{y}=(y_1,y_2,\cdots,y_m)^{\top}y=(y1,y2,⋯,ym)⊤ が定まる状況(nnn 変数関数が mmm 個あると考えてもよい,nnn 変数の mmm 次元ベクトル値関数と考えてもよい) 各 yiy_iyi は xjx_jxj で偏微分可能 ヤコビ行列の定義 ∂yi∂xj\dfrac{\partial y_i}{\part
数学記号 arg max\mathop{\rm arg~max}arg max および arg min\mathop{\rm arg~min}arg min について解説します。max\maxmax(最大値) と arg max\mathop{\rm arg~max}arg max(最大値を与える入力の集合) は混同しやすいのできちんと理解しましょう。
初めまして,大野と申します.今回から自分もリサーチブログを書く事になりました.これを期に定期的に投稿が出来ればと思っています. 自己紹介をしますと,私は学部から修士課程まで数学を専攻していました.入社したのは今年の4月ですが,PFIにはそれ以前から関わっており,昨年の夏にインターンに参加していました. インターンは今年も行っており,今年も皆さん奮闘しています.9月30日の13:00から15:00でUstream配信される予定ですので,是非ご覧になってください. さて,今回社内で「言語処理のための機械学習入門」(コロナ社)という本を用いて勉強会を開く事になりました.私自身専攻していた分野はいわゆる純粋数学で,機械学習の分野はあまり詳しくはないので楽しみにしています. この勉強会では紙と鉛筆を用いて自分で計算過程を追いながら読もうとしています.そこで,その準備として第0回チュートリアルを行いま
機械学習を学ぶための準備 ▶︎その1(微分について) その2(級数と積分について) その3(行列について) その4(行列の掛け算について) その5(行列のいろいろ) 橘と申します。 機械学習を勉強中の身でありながら、機械学習に関して記事を書いていく予定です。 このブログを読んでいる方であればご承知のとおりかと思いますが、機械学習と数学は切っても切れない関係です。「数学を使わなくても機械学習は使える」という考え方があるのも事実ですが、いずれは数学の知識が問われることになります。 そのため、始めの数回は抑えておくべき数学の知識をまとめていこうと思います。初回は微分です。 そもそも数学は嫌いですか? 少し古い記事ですが、経済協力開発機構(OECD)による数学の学習意欲度の調査結果が公開されています。 OECD国際学習到達度調査(1)日本、数学の学習意欲改善 日本人の7割が苦手という結果が出ている
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く