サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
sudillap.hatenablog.com
それでは実際に分析を行なっていきます。 分析方法 データ分析により、ワインの成分データから味のグレード(属性quality)を求めるモデルを作成します。 グレードqualityは0(とてもまずい)から10(絶品)までの値をとる質的変数(順序尺度)とみなすのが原則ですが、分析の際には量的変数として扱います。 したがって回帰モデルを作成することによりデータを分析すれば良いことになります。用いた手法は、線形回帰モデル(交互作用あり・なし)、サポートベクター回帰(SVR、support vector regression)、ランダムフォレスト(random forest)です*1。 もちろん、グレードqualityを質的変数とみなすことにより、分類問題として分析することも可能です。実際は、あまり予測精度に違いはありませんでしたので結果は省略します。 また、事前につぎの処理をデータに施しておきます。
スラック変数の導入 スラック変数を導入すると、訓練データの各データが支持超平面から分類超平面のほうにどの程度はみ出したかを測ることができます。別の表現をすれば、はみ出したデータを無視して支持超平面を構成した結果として発生する誤差の程度を測る変数です。 スラック変数を$\xi=(\xi_1, \ldots, \xi_l)^T$と表記すると、スラック変数は誤差の大きさを表しているので $$ \xi_i\geqq 0, i=1,\ldots, l $$ です。 下図のような状況を考えます。このデータの配置では正例データと負例データを分ける超平面はもはや存在しないことがわかります。ピンク色の点は誤差データと考え、それ以外のデータから支持超平面を構成しています。誤差データに対してはスラック変数$\xi_i$でその大きさを考慮しています。 支持超平面からはみ出したデータに対応したスラック変数のみ$\x
乳幼児突然死症候群(Sudden Infant Death Syndrome、シッズ、以降 SIDS と略します)とは、「何の予兆もないままに、主に1歳未満の健康にみえた乳児に、突然死をもたらす疾患」(Wikipediaより)のことで、日本では1歳未満の乳児の死亡原因の第3位を占めています*1。 人口動態統計年報(2009年)によると、SIDSによる死亡数は乳児10万人あたり13.6人ですので、約7000人に1人の割合となります。 乳幼児突然死症候群(SIDS)を防止するための注意事項は母子健康手帳の副読本(P66~67、「眠り」の環境と注意ポイント)に書かれているそうですので参考になさってください。 SIDSのリスク要因およびリスク削減指針について調べたので、その内容を本記事にまとめました(基にした参考文献リストは本記事最後にあります)。 注意:本記事の正確性はまったく保証されていません
Business Media誠によるとJR東日本が7月1日より、IC乗車券「Suica」の利用履歴を外部に販売したとのこと。 今回販売したのは、私鉄を含む首都圏約1800駅で、Suicaを利用して鉄道を乗り降りした履歴データ。JR東日本は、累積で約4300万件のSuicaを発行しているが、Suica定期券、My Suica(記名式)、Suicaカード(無記名)、モバイルSuicaすべての乗降履歴が対象だという。 Suicaで鉄道に乗降した駅名と日時の履歴のだけでなく、記名式のSuicaやモバイルSuicaの場合は、年齢、性別も販売データに含まれる。一方、電子マネーとして利用した履歴や、利用者の氏名、電話番号はデータに含まれていない。 Suicaには固有のIDがあるが、今回はSuicaのIDをそのまま渡すのではなく、異なるIDを振り直したと説明。そのIDごとに、乗車履歴年齢、性別のデータが分
サポートベクターマシンの一種である1クラスサポートベクターマシンで外れ値を見つけてみます。 1クラスサポートベクターマシンでデータを入力空間から特徴空間に写像すると、入力空間で孤立しているデータは特徴空間内の原点近くに写像されます。この性質から支持超平面より原点側にあるデータを外れ値とみなせばいいことになります。 ついでに述べておきますと、クラス分類問題に用いられるサポートベクターマシンは教師あり学習ですが、1クラスサポートベクターマシンは教師なし学習です。したがって、外れ値検出のための教師データは不要です。 ところで、1クラスサポートベクターマシンには次に述べる2つのパラメータがあり、それらをユーザーが指定する必要があります。 $\sigma$ カーネルにRBF(radial basis function)を用いているため。 $\nu$ 1クラスサポートベクターマシンは$\nu$サポート
TOEICで満点のスコアである990点を取った人は何人いるのか気になったので、その人数を推定してみました。 TOEICの公式ホームページでTOEICの平均スコア・スコア分布が公開されており、そのページを見ればスコア区分(50点刻み)ごとの人数はわかります。しかし、不思議なことに895から満点の990点までは刻み幅が95に拡大されており、ここだけデータの間隔が粗くなっています。そのため、このスコア分布をただ見ただけでは満点(990点)を取った人が何人いるのか見当がつきません。 もし最低スコア10点から最高スコア990点まで、スコアごと(5点刻み)の人数が推定できれば、満点を取った受験者数を推定することができます。 TOEICは頻繁に実施されています。どの実施回のデータを分析対象にしても良いのですが、この記事では第177回(2013年1月)[受験者数:106,477人]のTOEICスコアを分析
まずはじめに訓練データが線形分離可能な場合について定式化します。この場合のサポートベクターマシンをハードマージンサポートベクターマシンと呼びます。 線形分離できないデータへの拡張(ソフトマージンサポートベクターマシン)については次の記事で説明します。 準備 まず初めに記号を定義しておきます。 訓練データのサイズ(個数):$l$ 訓練データの次元:$n$ とすると、属性データの集合$X$とそれに対応するクラスの集合$Y$をそれぞれ次のように表記します。 $$ \begin{align} X &= \{x_1, x_2, \ldots, x_l\}, x_i \in \Re^n\\ Y &= \{y_1, y_2, \ldots, y_l\}, y_i \in \{-1, 1\} \end{align} $$ $X$の各要素$x_i$が1個の訓練データに相当し、それぞれ$n$次元ベクトルである
はじめに最適化問題の解法について一般論を述べた後、それをサポートベクターマシンで現れる最適化問題に適用していきます。 最適化問題とは、「ある制約の下で、関数の最小値や最大値を発見すること」で、次のように定式化できます。 最適化問題(主問題) $z \in \Re^n$とするとき、 目的関数 $$f(z)$$ を次の制約条件の下で最小化する。 制約条件 $$ \begin{align} g_i(z)& \leqq 0, i=1, \ldots, k,\\ h_i(z)& =0, i=1, \ldots, m, \end{align} $$ ここで、$g_i$は不等式制約と呼ばれ、計$k$本の不等式からなります。$h_i$は等式制約で計$m$本の等式からなります。 なお、目的関数が2次関数で、不等式制約、等式制約は線形関数の最適化問題は2次計画問題(quadratic programming)
ここからはこれまで述べてきたサポートベクターマシンにカーネル法を適用することにより非線形サポートベクターマシンへ拡張することを考えます。 カーネル法の導入 これまで述べてきたサポートベクターマシーン分離面が超平面であることを前提としていました。しかし、実際の問題では正例データと負例データの境界が超平面であるよりは、複雑に入り組んだ超曲面である可能性が高いことが想定されます。 このようなデータに、これまで述べてきたようなクラス境界を超平面とするサポートベクターマシーンを適用しても、高い分類性能を期待することは難しそうです。 たとえば下図のような単純なケースでさえ正例データ(○)と負例データ(×)を分ける直線は存在しないため、100%の分類性能は達成できません。 しかし、このようなデータでも線形分離が可能になるような別の空間へ変換できれば、変換先の空間ではクラス境界が超平面になるのでサポートベ
データ分析の威力を色々な実例を挙げて述べた「その数学が戦略を決める」(イアン・エアーズ著)を読まれた方も多いと思います*1。 その中に、ワイン好きの経済学者オーリー・アッシェンフェルター(Orley Ashenfelter, プリンストン大学)がワインの質を計算する式 ワインの質 = 12.145+0.00117 × 冬の降雨+0.0614 × 育成期平均気温 -0.00386 × 収穫期降雨 により、伝統的なワイン批評家たちに「このやり方自体バカげていてまともには受け取れない」とまで言われたことが書かれています。 この式はワインの値段を予測する式ですが、ではワインの味を式で表すことは可能なのでしょうか? 実は可能で、ワインに含まれている成分(化学物質)の濃度などが分かれば、ワインの味(専門家が付けたグレード)を式で表すことができます。それが次の式です。 ちなみに、ワインの味(グレード)は
主成分分析を用いて外れ値を見つけましょう。 ここでの方針は、主成分分析を使って3次元から2次元に縮約したデータをもとに外れ値で見つようということです。 スクリープロットを見ると、主成分2つで元データの90%以上の情報を保持していますので2次元に縮約しても問題ありません。 結論を先に言うと、頑健主成分分析の一種であるROBPCA(後述)の結果から判断して、87番目のデータ(正解と同じ!)が外れ値となります。通常の主成分分析では検出は無理でした。 さて、主成分分析と一口に言っても実は色々な変種が存在します。ここでは、一般の本に載っている通常の主成分分析だけではなく、これとは異なる3種類の頑健主成分分析(robust principal component analysis)という一般にはあまり馴染みがない手法も用いて外れ値を探します。 普通の主成分分析 3次元の玉データを2次元に縮約すると次の
Rに元から備わっているグラフィックス機能とその機能を拡張するggplot2で日本地図を表示する方法について説明します。 地図データの準備 日本地図のシェープファイルを入手します。入手先は2ヶ所(Global Administrative AreasおよびESRIジャパン株式会社)ありますので、順に説明します。なお、両者のデータの中身は異なるようなので注意してください。 Global Administrative Areasからダウンロードするには、Downloadにアクセスして、プルダウンメニューの「Country」で「Japan」を選択(「File format」メニューは「Shapefile」のままで)すると日本地図のシェープファイルのダウンロードページにジャンプします。 ちなみに、「File format」メニューで「R (SpatialPolygonsDataFrame)」を選択す
LOF(local outlier factor)とは密度ベースの外れ値検出法です。ある点のまわりの密度がほかの点と比べて小さければ小さいほど、LOFの値は大きくなります。したがって、LOFの最も大きいデータを外れ値すればいいことになります。 LOFアルゴリズムについては後述のアルゴリズム概要に書きましたので興味ある方は参考にしてください。 早速結果を見てみましょう。図から明らかなように、87番目のLOFが突出して大きいので、これが外れ値となります。 library(DMwR) max.k <- 50 gold.lof <- matrix(0,max.k,100) for(i in 2:max.k){ gold.lof[i,] <- lofactor(gold, k=i) # ここでLOFを計算しています。kはパラメータです。 } なお、このグラフはLOFのパラメータ$k$が10~20のと
このページを最初にブックマークしてみませんか?
『verum ipsum factum』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く