You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
Pipelining: chaining a PCA and a logistic regression¶ The PCA does an unsupervised dimensionality reduction, while the logistic regression does the prediction. We use a GridSearchCV to set the dimensionality of the PCA print(__doc__) # Code source: Gaël Varoquaux # Modified for documentation by Jaques Grobler # License: BSD 3 clause import numpy as np import matplotlib.pyplot as plt from sklearn i
Note Go to the end to download the full example code. or to run this example in your browser via JupyterLite or Binder Selecting the number of clusters with silhouette analysis on KMeans clustering# Silhouette analysis can be used to study the separation distance between the resulting clusters. The silhouette plot displays a measure of how close each point in one cluster is to points in the neighb
今日は昨日に引き続き SciPy and NumPy Optimizing & Boosting your Python Programming の中から scikit-learn を使った例を軽く説明します。クラスタリングについてはすでに食べられるキノコを見分けるやクラスタリングの結果を再利用するといった記事で説明しましたし scikit-learn によるクラスタリング でも取り扱ってきましたから機械学習の中でもすっかりお馴染みの手法かと思います。 scikit-learn でのクラスタリング ポピュラーな kmeans と比較して多くのデータ点を有するコア点を見つける DBSCAN アルゴリズムは、コアが定義されると指定された半径内内でプロセスは反復します。ノイズを多く含むデータに対して、しばしば kmeans と比較される手法です。 原著においてもこれらの手法を比較し可視化していま
前回は scikit-learn に実装されている機械学習の手法をざっくりと書いてみたのですけれども、それなりに需要がありそうなので今日から scikit-learn を使った機械学習のサンプルコードを書きつつ、その手法の理解と実践に迫ってみたいと思います。 まずは以前にもやった K 平均法によってクラスタリングをする例を挙げていきます。 K 平均法はクラスタリングの中でも基本的な手法で、シンプルで高速に動作しますし、入門にも最適です。動作についての説明は毎回おすすめしているのですがこのあたりがわかりやすいです。 クラスタリングする対象としてはやはり株価データを利用します。 株価のデータは 無料で誰でも入手することができる 企業の「業績」を示す指標となるリアルなデータである 定量的なデータであるため分析しやすい といった特長があるため扱いやすいのです。 企業の業績と株価は密接な関係にありま
2016.09.14 処理時間のバラつきについて追記しました scikit-learnのSVC(rbfカーネルとlinearカーネル)とLinearSVCの処理速度を比較してみました. 利用したデータはRのkernlabパッケージに含まれているspamデータです. 説明変数は4601サンプル,57次元, ラベルはspam:1813サンプル,nonspam:2788サンプルです. サンプル数,次元数を変えた時の結果は以下の通りです. SVCのlinearカーネルが遅すぎますね. ついついカーネル種別まで含めてグリッドサーチしてしまいたくなりますが, きちんとLinearSVCを使ったほうが良さそうです. 検証用コードは以下. 処理時間計測の都合でパラメータCを振っています. また特徴量選択(次元削減)はRandomForestのfeature importanceを利用しました. これは適当
はじめに Pythonで機械学習といえばscikit-learnですが、scikit-learnを使うにはnumpyやscipyといった大きめのライブラリを入れる必要があります。でも、プログラムでほんのちょこっとだけ機械学習のモデルを使って分類したいって場合だと、わざわざそういう重いもの入れたくないなーと思うときがあります。scikit-learnで学習したものをnumpy, scipy, scikit-learnなしに使って分類処理ができたらなーって。 そこで今回はscikit-learnの決定木 (DecisionTreeClassifier) やRandom forest (RandomForestClassifier) からif-then形式のコードを生成するものを紹介します。 コード https://github.com/ikegami-yukino/misc/blob/mast
1. scikit-learnを使った実験概要 Gradient Boostingについて - 準備編 - ( http://goo.gl/y2EVLI ) の予告通り今回はSklearnで実験をしてみました。目的は、GBDTを使ったfeature transformationが予測を改善するのか、という点を確認する事です。 ところで、Gradient Boostingでfeature transformationする話は昔からあったはずですが、ADKDD'14で発表されたPractical Lessons from Predicting Clicks on Ads at Facebook[1]が非常に有名です。実験はこの論文がやっている事と同じですが、featureの安定性等は計算していません。実務で適用する場合は重要な点ですので、ぜひトライしてみて下さい(結果を教えて頂けるととてもうれ
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? こんにちは。 林@アイエンターです。 前回のブログでは、Pandasやデータ可視化用のSeabornを導入し、米国自動車株の解析を行いました。 今回は再びscikit-learnにフォーカスして、機械学習のクラスタリングで用いられる「k平均法(k-means)」で画像の減色処理を行ってみます。 また、今回は画像の扱いには「OpenCV」も使ってみることにします。 k平均法での画像減色 k平均法とはWikiに詳細が記載されておりますが、空間上の点群データをk個のグループに分類するアルゴリズムです。 アルゴリズムから、各点がどこのグループに
以前(というか昨年のAdvent Calender)線形SVMについて書かせていただいたのですが、非線形の部分に触れられずに終わってしまったので、今回は続きということで非線形SVMについてまとめてみようと思います。 前回の記事は以下になります。 線形SVM(Machine Learning Advent Calendar 2015) 非線形SVMとは 前回の線形SVMでは、データ集合の実空間上に線形な境界を設けることで、データ集合を2つのグループに分類していました。 例えば、二次元空間上に存在するデータ集合を2つのグループに分類したいとき、線形SVMを使えば両グループが最も乖離する位置に線形な境界(超平面)を定義でき、データ集合を2分することができます(なおこのときのデータ集合は訓練集合であり、各データの正解ラベルはわかっているものとします)。 (同じ色の点は、同じグループのデータであるこ
どハマりした内容 scikit-learnに実装されている多層パーセプトロン(MLPClassifer)で予測した内容と、あらかじめ学習して取得していた重み、バイアス行列を使った自作のニューラルネットーワクの予測が全く合わなかった。 先に結論 入力データの標準化をしていなかった... どハマりした経緯 学習モデルの構築にPipelineを使って標準化、トレーニング、テスト(汎化性能)のチェックをしていた。 最終的な重みとバイアスだけで、標準化をしていないデータにも対応できると勝手に思い込んでいた(恥) おまけ:MLPClassifierで取得した重み、バイアスでニューラルネットワークを構築 import numpy as np import os import sys import pandas as pd # dataFrameを扱うライブラリ from math import exp,
scikit-learnのRandomForestClassifierを使うことで,分類問題をランダムフォレストで解くことが出来ます. ランダムフォレストの特徴として,同じクラスに属するデータから,クラスを代表する属性値とは離れた値をもつ外れ値(outlier)のデータを特定することができます. 公式のscikit-learnでは外れ値を算出する機能がないため,今回はoutlierを出力するスクリプトを作成しました. (ちなみにRでは算出が可能です) 外れ値と求めるためには,scikit-learnのRandomForestClassifierのメソッドにあるapplyを使用します. これはランダムフォレストアルゴリズムで作成した各決定木にバッチの入力データを与えた時,各データがどの葉に含まれるかを葉のインデックスで返してくるメソッドです. http://scikit-learn.org/
Scikit learnのチュートリアルを参考にしながら、SVMを使った手書き文字の認識と結果の可視化をPythonで実装してみた。 使用するデータ Scikit learn のライブラリに含まれているdigitsデータを使う。中身を見ると、64(=8x8)ピクセル、グレイスケールの手書き数字の画像データ、1797個分が行列形式で準備されている。これをSVMを使って多クラス分類する。 # Load example data from sklearn import datasets digits = datasets.load_digits() # データフォーマットの確認 print(digits.data) print(digits.data.shape) n_samples = len(digits.data) # データ数 print(n_samples) # 画像にして出力 imp
まえがき 本記事は機械学習関連情報の収集と分類(構想)の❷を背景としています。 例えば某企業がクラウド上の某サービスを利用して Q&A システムを構築したニュースがあったとしましょう。 そうすると❷のローカルファイルシステムのフォルダ例から推察できるように、このニュースのインターネットショートカットは、 ・ツール/クラウド/某サービス ・機械学習/応用/Bot・対話システム ・社会動向/企業/某企業 の少なくとも3か所に配置されねばなりません。これらの分類は排他的ではないので、いわゆる多ラベル分類です。 調べてみると Python / scikit-learn でこのような問題を扱うアルゴリズムは多様ですが、それなりに API インタフェースが統一されていて、アルゴリズムを差し替えるだけで動作する様なコードが書けるようです。 そこで、そのAPI インタフェースを確認してみようというのが本記
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く