Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 機械学習を仕事で使うため、Udemyで色々と受講しています。 その中で、「Pythonで機械学習:scikit-learnで学ぶ識別入門」を受講したので、そのメモです。 感想 非常に充実しています。 オープニングで、扱っているのは予測ではなく識別のみと宣言しているため、内容が統一されていると感じます。 ボリュームはかなりあります。単に講座を聞くだけなら2~3日で終わりますが、講座を聞いて、手元のJupyter notebookで理解しながらコードを確認・修正して..とやっていると、社会人だと6~7日は必要かと思います。 データ分割~学習
1.書こうと思た動機 機械学習の勉強のため、Scikit-learnを実行してみました。 でも回帰と分類、よくわからず行っていました。 よってSVMで株価の推定を行おうというアホなことをやっていました。 勉強不足は棚に上げて でもよくよく見るとどの参考書等でもいきなりやりたいことが〇〇だからSVM使おうぜみたいな記載、またはもっと概念的な記載が多いかと思います。 そこで具体例を含めた記載にチャレンジしたいと思います。 1.1お断り 全4つを纏めたうえで書くのではなく進捗具合に合わせて途中の状態であってもアップしていきます。 その後、勉強していく中で自分の中で整理がついたら順次更新いたします。 2.機械学習のアルゴリズム 本家の説明文書は以下の通り。 http://scikit-learn.org/stable/tutorial/machine_learning_map/ 2.1分類(cla
はじめに SVMで二クラス(0/1)の分類器を学習して、各データのクラス1への所属確率を出したい用ができたので sklearn.svm.SVC を見ていたら、predict_probaとかいうまさになやつを見つけたので、使って見たら ん?ってなった話。 ん?ってなったこと predict(X)で予測した結果とpredict_probaで算出した確率の整合が取れてない(時がたまにあった)のです。 準備 いったんpredictとpredict_probaの仕様を確認。 predict(X) [データ数]行 × [次元数]列の特徴量行列 X を引数にして、データ数分の予測ラベルを返すそうです。読む必要なかった。 predict_proba(X) [データ数]行 × [次元数]列の特徴量行列 X を引数にして、各データがそれぞれのクラスに所属する確率を返す、って書いてあります。で、最後に「列はクラ
以下のshell sessionでは (base) root@f19e2f06eabb:/#は入力促進記号(comman prompt)です。実際には数字の部分が違うかもしれません。この行の#の右側を入力してください。 それ以外の行は出力です。出力にエラー、違いがあれば、コメント欄などでご連絡くださると幸いです。 それぞれの章のフォルダに移動します。 dockerの中と、dockerを起動したOSのシェルとが表示が似ている場合には、どちらで捜査しているか間違えることがあります。dockerの入力促進記号(comman prompt)に気をつけてください。 ファイル共有または複写 dockerとdockerを起動したOSでは、ファイル共有をするか、ファイル複写するかして、生成したファイルをブラウザ等表示させてください。参考文献欄にやり方のURLを記載しています。 dockerを起動したOSの
(base) root@a221771835f7:/scikit-learn/sklearn# python setup.py non-existing path in '__check_build': '_check_build.c' Appending sklearn.__check_build configuration to sklearn Ignoring attempt to set 'name' (from 'sklearn' to 'sklearn.__check_build') Appending sklearn._build_utils configuration to sklearn Ignoring attempt to set 'name' (from 'sklearn' to 'sklearn._build_utils') Appending sklearn.s
なんか新しいコンペのメールが来てたのでSIGNATEのコンペのデータで遊んでみた。 コンペの目的 Tellus Satellite Challengeは、衛星データの利活用事例の可視化、優秀な分析人材の発掘、衛星データ種やフォーマットの周知・啓蒙等、Tellusの利活用の促進を目的としたデータ分析コンテストです。 第1回目のテーマは「SARデータを用いた土砂崩れ検出」です。 近年、自然災害のリスクが高まる中、災害時の土砂崩れの迅速把握が人命救助の観点などから極めて重要であり、観測衛星からのモニタリングが緊急時対応で実施されております。取得されたデータから土砂崩れを判定する業務は、専門家の高度なスキルにより解析される一方で、その判定は容易ではないのが実際です。そこで今回のチャレンジでは衛星画像データから土砂崩れ領域をより高い精度で検出するアルゴリズムの開発を目指します。 とのこと。 ここに書
初めに 機械学習の教科書では(紙面の都合上やらなさそうな)様々なパラメータを変えた際にどのように変化するのかについて、SVCを用いてやってみました。 ちなみに使用したのは0~9までの数字が書かれたDigitsの画像データ。 Digitsのデータについてこちらで可視化等は行ってみています。 LinearSVC まずはsvm.LinearSVCで正則化定数Cのチューニングを行ってみたいと思います。カーネル法を試す前に線形のSVMから始めた方が良いらしいです。結果はロジスティクス回帰分析とだいたい同じような感じになります。 svm.LinearSVCはLinearに特化したアルゴリズムのため、svm.SVCよりも高速で動くとのこと(未検証) 交差検証は10分割で行い、正答率の平均値を今回はscoreとして、プロットしてみました。(本来はテストデータを訓練データを分けてから交差検証した方が、よいで
ログの監視といえば、特定のキーワード(例えばErrorという文字列とか、Warningという文字列とか)をベースに監視ツールで検知させるといったことを実施するのが一般的かと思います。 ただ、この対処をするには、どういったログが出力されるのかを予め知っておく必要があり、その条件を決めるのもなかなか大変なのではないでしょうか。 そのようなケースに対し、もう少し分析技術の要素を取り入れて異常な状態に気づけるようにするアプローチを考えてみます。 試したこと 今回試したのは、ログをgensimのdoc2vecでベクトル化し、k-meansでクラスタリング。 さらにそれを時間毎に区分けして各ログパターンの発生件数をヒートマップ化してみます。 サンプルプログラム Python3で、gensim、matplotlib、sklearnのKMeansを利用しています。 # !/bin/env python f
機械学習 機械学習には様々な種類のものがあります.大きく分けると以下のように なります. 教師あり学習 教師なし学習 その他(強化学習など) 今回はロジスティック回帰を使うために簡単に教師あり学習について紹介したいと思います. 教師あり学習(回帰) 教師あり学習ではデータと正解ラベルの2つの情報が渡されます. 大量のデータから「このデータの正解はこのラベルであった」というパターンを見つけ出して,正解ラベルのないデータに対してもそれを予測するものになります. 教師あり学習はさらに正解ラベルの種類によって回帰と分類に分けられます. 回帰は,正解となる値が連続した数値となるものです. よく見られる例として: ビールの売り上げは気温に影響すると言われています. この情報を元に実際の売り上げと気温のデータを利用して機械学習を行うことで、天気予報から得た翌日の気温から売り上げを予測することが可能になり
初めての機械学習 初めて機械学習を行う方向け、初めての機械学習特集です。 今回は機械学習とはの概要と開発環境について紹介していきます。 機械学習とは データから知識を引きだし活用すること。 大きく教師あり学習と教師なし学習の2種類ある。 教師あり学習 ユーザーが入力データと望ましい出力のペア群をアルコリズムに与える。このペアのデータを「教師」としてアルコリズムは出力を生成するからである。詳しくは次回紹介。 教師なし学習 ユーザーが入力データのみをアルコリズムに与える。よって出力結果はどういったものになるか、わからない。詳しくは第3回で。 開発環境 Visual Studio Code マイクロソフトが開発しているソースコードエディタ。 Windows、Mac OS、Linux上でも使え、マークダウン エディタとしても使える優れもの。 多言語対応、拡張機能もあり、Pythonのデバックを可能
初めに またdigitsネタ、一回目はこちら。同じデータをいろいろな方法を使用して、ごちゃごちゃ分析するのはデータ分析の基本中の基本(?)なので…。 Random Forestは、パラメータの寄与率まで出せるという利点があります。今回はdigitsをRandom Forestで学習させてみて、一回目で分析したPCAと比較していきたいと思います。 Random Forestを使ってみる # -*- coding: utf-8 -*- from sklearn import datasets from sklearn import ensemble from sklearn import metrics from sklearn import decomposition from sklearn.model_selection import train_test_split import ma
MLflow MLflowはオープンソースで、機械学習処理のライフサイクル管理を行うソフトウェアです。Kubernetesで管理している環境だとKubeflow、AWSならSageMakerとか、この分野の用途で利用できるものはいろいろあるかと思いますが、OSSでいろんなシーンで適用できそうです。 MLflow 現時点(2018/10/03)でバージョン0.7というのがリリースされており、絶賛開発中のようです。 MLflowは、要素として3つで構成されています。 MLflow Tracking : 学習の実行履歴管理 MLflow Projects : 学習処理の実行定義 MLflow Models : 学習モデルを用いたAPIサーバの実行定義 MLflow Tracking 学習モデル生成時に、生成されたモデルの実体や学習モデルの評価結果のスコア情報等を記録し、履歴管理する機能です。 学
前回までは属性に対しての解析だったので今度は画像を分類わけしてみることにした。 といっても、右も左もわからない状態がどうやって進んだのか?という参考になればという程度のメモである。 犬猫 試してみたのはこっちのコンペのデータ https://www.kaggle.com/c/dogs-vs-cats 犬か猫かを分類しようぜというやつだ。 データ確認 DLしながらデータセットの中身を確認 The training archive contains 25,000 images of dogs and cats. Train your algorithm on these files and predict the labels for test1.zip (1 = dog, 0 = cat). といっても、データを確認するも何もない。 画像を犬(1)か猫(0)に分類しろってだけな模様。 どこか
scikit-learnでは外れ値検知の手法の1つであるLOF(Local Outlier Factor)が提供されていますが、versionが0.19以前ではテストデータに対する正常データ・異常データの判定ができませんでした。version0.20からテストデータに対する正常データ・異常データの判定機能が実装されましたので、そちらを紹介します。 使い方 One Class SVMのようなscikit-learnに実装されている外れ値検知の手法では、正常データが大多数であるような訓練データを与え、fitメソッドで学習をおこないます。学習済みのモデルのpredictメソッドを使うことで、テストデータが正常か異常かが判定されます。LOFを使う場合にも同様の流れになりますが、fitメソッドを使うときにちょっとだけ違いがあり、novelty=Trueという引数が必要になります。例えば、次のように訓
目的 交差検証について調べたりコード化してみる そもそもの発端としては 前回の訓練データだと90ぐらいのスコアになったのをアップロードしてみたらちょこっとしかUPしてなかったということである。 以下のようなろくでもない検証にしかしてなかったのでダメだろうとは思っていたが ここまで差が出るとはちょっとびっくりであった。 なので、調べてみることにした。 [過剰適合] https://ja.wikipedia.org/wiki/%E9%81%8E%E5%89%B0%E9%81%A9%E5%90%88 [交差検証] https://ja.wikipedia.org/wiki/%E4%BA%A4%E5%B7%AE%E6%A4%9C%E8%A8%BC ググってみた。 「モデルの説明変数は必要以上に増やせば増やすほど学習データのシグナルだけでなくノイズにまでフィットしてしまう」 訓練データに最適化しすぎ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く