Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
scikit-learnによる多クラスSVM 目的 scikit-learnのSVM(SVC)は,多クラス分類を行うとき,one-versus-oneで分類する. しかし,one-versus-the-restの方が識別性能がいい場合がある(多い,という報告を見かける)ので, sklearn.multiclassのOneVsRestClassifierを使った one-versus-the-restでの多クラスSVM分類の仕方をメモしておく. (注)ただし,LinearSVCはデフォルトでone-versus-the-restを採用している. One-versus-the-restとOne-versus-one $K$クラス分類問題を考える. One-versus-the-rest ある特定のクラスに入るか,他の$K-1$個のクラスのどれかに入るかの2クラス分類問題を解く分類器を$K$個利
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Edisonをセンサーやアクチュエータを操作するマイコンのようにしか使わないのは,ちともったいない.EdisonはIoTの末端に位置するだけの存在じゃないんですよ,と. 大まかな手順は,以下. 母艦の準備 Edisonの初期設定 EdisonのPython設定. それじゃ,いってみよー! *前回の記事とダブってるところが,かなりあります. 母艦の準備 Debianのイメージをダウンロードしてくる. とりま,Yoctoのことは忘れましょう.さようならYocto・・,短い間だったけど楽しかった,君のことはきっと忘れない.もっとパッケージ数が
scikit-learn + クラスタリングに関してはこのブログのだいぶ初期にちょっとだけ触ったのですが、今にして思うと説明不足感が否めないですし、そもそもこれだけじゃ scikit-learn を思い通りの目的にあわせて使えないという意見もあるかと思います。そこで改めて scikit-learn による基本的なクラスタリングについて説明していきます。 といっても基本的な話としては本家のドキュメントを読めで話が終わってしまうのですが、日本語の情報があると何かと助かるということもあるかと思います。 生徒の成績をもとに班分けをおこなう よくあるケースとしては例えば、生徒の国語・数学・英語の成績をもとにいくつかのグループに分けたいという場面です。このとき、各科目の合計点の上位から順番に分けてもいいのですが、中には国語が良く出来るけど数学はいまひとつな生徒、数学は得意だけど国語はいまひとつな生徒も
クラスタリングの概要 実装根拠は以下を参照してください。 K-means++ K-means 英語ですけど日本語のページより情報量が多くまた厳密性があると思います。 scikit-learn の概要 Python で機械学習のあれこれをできる超便利なライブラリです。この辺を読んでください。 scikit-learn scikit-learn の紹介 前提 入力ファイルとして文字列ごとに改行で区切られたテキストファイルを想定します。 使い方としては python clustering.py input.txt output.txt のように引数に入出力ファイルを指定します。 途中 print() で途中結果を表示しています。 出力ファイルにクラスタリング後のデータが出力されます。 ぜひ適当なテキストファイルを用意して実際に動かしてみてください。 実装 コード全体は以下の通りです。 clust
scikit-learnCross ValidationとGrid Searchをやってみた。 Cross Validation 詳しいことはWikipediaに書いてある。 Cross Validationはモデルの妥当性を検証する方法のひとつ。一般的に開発用のデータは訓練データと検証データに分かれる。 しかし、このまま行ってしまうと折角の訓練データが減ってしまうことになる上に、訓練データの選び方によって汎化性能が下がってしまう可能性がある。 Wikipediaに書いてあるもののホールド・アウト検定がこれに当たる。一般にはこれはCross Validationにはあたらない。 ここに書いてあるK-分割交差検定がこれに当たる。K-分割交差検定では開発用のデータをK個に分割しK-1個を訓練用に、残りの一つを検証用に使いモデルの正当性を計算する。 これにより使える訓練データが増えると同時に、こ
# -*- coding: utf-8 -*- from sklearn import datasets from sklearn.cross_validation import train_test_split from sklearn.grid_search import GridSearchCV from sklearn.metrics import classification_report, confusion_matrix from sklearn.svm import SVC ## データの読み込み digits = datasets.load_digits() X = digits.data y = digits.target ## トレーニングデータとテストデータに分割. X_train, X_test, y_train, y_test = train_test_spli
過去のデータから未来の数値を予測するちょっとしたツールを社内向けに作りました。単に学習済のモデルを使って予測値とグラフを表示するだけなら Jupyter Notebook でも良いのですが、非プログラマーが想定ユーザーだったので Web アプリケーションにしました。この方がユーザーとって不要な Python のコードが表示されませんし、データの追加・修正を安全に行うことができます。 仕様など 社内用のツールなので詳細は伏せますが、今回作るのは過去のデータから未来のデータを予測し、数値とグラフを表示します。過去データは手動で入力し、バッチ処理により学習と予測を行います。想定ユーザーは社内で1名のみ。予測結果は今後のユーザーが業務上で意思決定を行うときに参考データのひとつとして利用されます。 バージョンは下記の通りです。 $ python --version Python 3.6.2 :: A
4.2.1. dictsからの特徴量のロード クラスDictVectorizerは、標準のPython dictオブジェクトのリストとして表される特徴量配列を、scikit-learn推定器で使用されるNumPy / SciPy表現に変換するために使用できます。 特に処理が速いわけではありませんが、Pythonのdictには、使いやすく、疎である(存在しない特徴を格納する必要はありません)、値に加えて特徴名を格納できるという利点があります。 DictVectorizerは、カテゴリ(または、名目、離散値)に対して、1対1のコーディングまたは「ワンホット」コーディングを実装ます。カテゴリ属性は、値に順番のない離散性のリスト(トピック識別子、オブジェクトのタイプ、タグ、名前など)に制限される「属性 - 値」のペアです。 以下では、「city」はカテゴリ属性であり、「temperature」は従
はじめに 機械学習ライブラリのデファクトスタンダード的存在であるscikit-learnの"精度を高めるための前処理"をまとめる。 数学レベルでの理解は途中で挫折したため、まずはライブラリから概要を理解しようと思いまとめました。 教師あり学習編はこちら 教師なし学習編はこちら 前処理とは 本記事で対象とする"前処理"は、scikit-learnに入力データを食わせるためにデータをNumPy配列(多次元配列)に変換する方法ではなく、NumPy配列データに対して精度を向上させるための処理のことを指す(一部one-hot-encodingは除く)。したがって、本記事でまとめる前処理を実施しなくてもひとまずは機械学習アルゴリズムを動かせる。しかし、実際の業務や研究では精度を求めることは必須なので、そのステージにあれば本記事は役立つかと思います。 前処理は、データの全ての特徴量に実施するのではなく一
はじめに 機械学習ライブラリのデファクトスタンダード的存在であるscikit-learnの"教師なし学習"とその定量的評価手法をまとめる。 数学レベルでの理解は途中で挫折したため、まずはライブラリから概要を理解しようと思いまとめました。 教師あり学習編はこちら 前処理編はこちら 教師なし学習とは 教師なし学習とは、入力データのみが与えられ正解ラベルがない状態で学習を行う手法である。 教師なし学習を使う場面は以下。 正解ラベルを用意できないケース 教師あり学習や他の教師なし学習の前処理をするケース データを可視化するケース データをなんとなく理解したいケース 教師なし学習は、次元削減とクラスタリングの2つの大きなタスクに活用される。 次元削減 次元削減とは、データを表現する特徴量の数(次元数)が多すぎる場合に、その特徴量の数を減らすことである。 本記事では、アルゴリズムとして以下をまとめる。
http://scikit-learn.org/0.18/modules/ensemble.html を google翻訳した scikit-learn 0.18 ユーザーガイド 1. 教師付き学習 より 1.11. アンサンブルメソッド アンサンブル学習 の目標は、単一の推定器に対する汎用性/頑健性を向上させるために、与えられた学習アルゴリズムで構築されたいくつかの基本推定器の予測を組み合わせることです。 通常、アンサンブル学習は2つのファミリに区別されます。 平均化手法 は、いくつかの推定器を独立して作成し、それらの予測値を平均化することを原則としています。 平均して、結合された推定器は、その分散が減少するので、通常、単一の推定器よりも優れている。 例:バギング法、無作為化された木の森、... 対照的に、 ブースティング法 では、ベース推定器が順次構築され、結合推定器のバイアスを低減し
# -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt %matplotlib inline from matplotlib.colors import ListedColormap from sklearn.cross_validation import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.datasets import make_moons, make_circles, make_classification from sklearn.neighbors import KNeighborsClassifier from sklearn.svm import SVC from
簡単な機械学習とWebアプリ Webサイトからの入力に対して、機械学習で作った判定モデルで結果を画面に表示する簡単なデモアプリを作ってみました。 アヤメのがく片と花びらの大きさ(縦、横)を入力すると、品種を判定して表示します。 コードはこちらにあります。 https://github.com/shibuiwilliam/mlweb 全体像 こんな感じです。 がく片や花びらを入力するフロントエンドと判定して結果を返すバックエンドという構成です。 スーパーシンプルです。 言語はPython3.6で、Webにはflaskとwtform、機械学習にはscikit-learnを使っています。 使い方 開発環境はCentOS7.3とPython3.6です。 ライブラリとしてflask、wtform、scikit-learn、Jupyter Notebookを入れています。 この辺は概ねAnaconda
この記事で紹介すること kmeansの距離関数って本当にユークリッド距離大正義なの? scikit-learnのk-meansって何が動いているの? scikit-learnのk-meansで距離関数を変更するにはどうするの? k-means法といえば、みなさんご存知、ぐにょぐにょっとデータを分割してくれるアレですね。 教科書にもよく出てくるアレなので、細かい説明は省きますが、いまだに使われてるのは、(禁則事項です)ということですよね。 あ、ちなみにこういう動画とかこういうツールとか使うと、k-meansの動きがよくわかってナイスだと思います。 で、k-meansではセントロイドと各データとの距離を測るために、「距離関数」が必要になります。 教科書的には「ユークリッド距離」一択のことが多いのですが、それって本当に正しいのでしょうか? この論文, Anna Huang, "Similarit
概要 社内の勉強会用に「機械学習って何?どうやって使うの?」というテーマでまとめたものです。この記事の内容が他の方の役に立てたら嬉しいです。 機械学習 = AI? 機械学習は人工知能の一分野で、ディープラーニングは機械学習の一分野です。 ルールベース 多重If文や探査により多彩なパターンを網羅して、複雑な条件でも適切な出力がされるようにプログラムされているもの 機械学習 データのパターンや特徴を学習し、それをもとに未知のデータに対して何かしらの予測を出力する ディープラーニング データの特徴となる要素の取捨選択を自動で行うことができる、機械学習の手法の一つ 強化学習 ある環境において、 エージェントが状況を観測しながら行動することを繰り返し試行し、目的を達成するための最適な意思決定を学習するもの Point! ルールベースだと、例外が発生すると人が手でルールを書き換える必要があり、どんどん
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く