nikkie-ftnextの日記

イベントレポートや読書メモを発信

読書メモ&イベントレポート|Python機械学習プログラミング勉強会#5 #datarefinement

はじめに

だんないよ、nikkieです。
#stapyでおすすめされた『Python機械学習プログラミング』の読書会があったので、参加してきました。
機械学習に業務で取り組んでいるのですが、独学の限界を感じ、
ノウハウを持っている社外の人の話を聞きに行くというアプローチで勉強しています。

勉強会の概要

Python機械学習プログラミング勉強会#5 - connpass

対象の4章を読み進めて参加しました。
正則化のところはとっつきにくかったので予習では飛ばしました。
参加者の中で機械学習歴は一番浅いと思うので、
全部わからなくても何か一つは持ち帰ろうという思いで参加していました。

初回や2回目は倍率が高かったのですが、今回は偶然にも参加できました。
統計学にバックグラウンドがある人が多いコミュニティという印象です。

原著者による公開Notebook:

http://nbviewer.jupyter.org/github/rasbt/python-machine-learning-book/blob/master/code/ch04/ch04.ipynb

 

4章読書メモ

pandasは経験がありますが、scikit-learnは触ったことがありません。
業務に活かせるかもと思った事項を書き出します。
予習時につけた付箋と一致するところが多かったです。

  • この本では欠損値=欠測値
  • pandas::dropna
    いずれかの列に欠損値を含む行を削除する(axis=0が指定されている)
    axis=1を指定するといずれかの行に欠損値を含む列を削除する
  • 欠損値を抜くことはデータが失われることでもある。そこで抜くのではなく補完する
  • sklearn::Imputer
    欠損値補完(axis=0で列方向、axis=1で行方向)
    統計学では平均値補完は避けるべきと言われているとのこと。
    (感想:機械学習は実用に堪えるものができればOKというスタンスらしい。
     平均値補完してもうまくいったらOKという感じなのではなかろうか?
     もっと言えば統計的な厳密さは追求していないのでは?)
  • pandas::map
    順序変数(str)をmapに渡したdictで整数に変換する。
    順序変数の例:服のサイズ M < L < XLという関係 M=0, L=1, XL=2
    逆のdictを渡すことで、整数から文字列に戻せる。
    クラスラベルを整数に変換するのにも使う
  • sklearn::LabelEncoder
    クラスラベルを整数に変換するのに使える
  • sklearn::OnehotEncoder
    色(red, green, blue)について0, 1, 2と置き換えると、実際にはない「順序」を想定して学習してしまう
    red=(1, 0, 0), green=(0, 1, 0), blue=(0, 0, 1)のように置き換える
  • pandas::get_dummies
    上述のone-hotエンコーディングをしてくれる
  • sklearn::train_test_split
    トレーニングデータとテストデータへの分割
  • 正規化 min-maxスケーリング(0〜1の範囲)
    標準化 平均0、標準偏差1
    ※正規化は外れ値の影響を受けやすい(例:外れ値が1になり、それ以外のデータが0の付近に集中)
  • sklearn::StandardScaler
    標準化のクラス
  • (再挑戦予定)L2正則化とL1正則化
  • トレーニングデータとテストデータとでAccurancyが同じくらいなので過学習を抑制したといえる
  • ランダムフォレストを使って特徴量の重要度を測定できる

 

終わりに

機械学習の知識を付けるには、この本を読み切るのが一番と考えているので
引き続き参加していきます。
scikit-learnは触ってみたいです。

イベントレポート&LT報告 | みんなのPython勉強会#32 #stapy

はじめに

だんないよ、nikkieです。
実践LT駆動開発ということで「みんなのPython勉強会#32」に参加し、LTしてきました。

勉強会の概要

みんなのPython勉強会#32 - connpass

勉強会プログラム

「Kubernetesのエコシステムとその影響」

「Road to kaggle master」 

「いまNetwork embeddingが熱い!」

今回のテーマは「オープンソース時代のエコスタイル」。
3つの幅広い分野の講演の後、
 「オープンソースの時代は常に勉強、
  教材は本、ネット、コミュニティといたるところにある」
というまとめの話に納得しました。

LT報告:pandasを触り始めた話

speakerdeck.com

デモに使ったnotebook

github.com

業務の都合でpandasを触り始めたので、それをLTネタにしました。
まだまだ学ぶべきことは多いので引き続き勉強していきます(pandasの力で業務を楽にしたい)

Kubernetesのエコシステムとその影響

KubernetesってDockerのオーケストレーションツールだよなという前提知識で聞いたところ
Kubernetesはプラットフォームだと認識が改まりました。
ユーザは意識しなくてもクラウドベンダーはKubernetesを使っているそうです。

キャッチアップするにはまずはこのあたりでしょうか。

また、マイクロサービスという概念も合わせて理解したほうがよさそうです。
(Kubernetesの運用では数百・数千のコンテナをまとめて扱うために試行錯誤しているそうです。
 これらのコンテナでマイクロサービスを提供しているらしいです)

マイクロサービスとは何か? デジタル変革の時代を生き残るための、テクノロジー入門 - Customer Success

 

Road to kaggle master

機械学習に携わっている身としては、
業務で機械学習に取り組む難しさや、kaggleを学習リソースとして使う方法を共有いただき、
大変ありがたい講義でした。

以下、講義中のメモです。

  • kaggleはデータを理解し、モデルを構築する点に特化している
    コンペが開催され、kaggleには賞金稼ぎもいる
  • 初級から中級にステップアップするには、機械学習の理論を勉強しないといけなかった
    Python Machine Learning』という本が勉強に役立ったそうです。
    日本語版:https://www.amazon.co.jp/dp/4844380605
    (感想:購入済みだったので、後は読み切るだけ)
  • ビジネスとしての機械学習ではデータが手に入らない
    コンペのkaggleと違って、ビジネスのデータは貴重
    (感想:これは肝に銘じよう)
  • kaggleはwinner solutionが勉強になる
    こんな特徴量使ったなど情報が公開される
    (感想:学習リソースとしてkaggle使ってみます)
  • データを可視化して特徴量を考える
    jupyter notebookでデータの全体像を見る

 

いまNetwork embeddingが熱い!

資料:http://www.tsjshg.info/TSUJI_20180207.pdf

購買情報もネットワークで扱えるというのは業務に使えるかもしれません。
以下、講義中のメモです。

  • Network embedding
    買ったか買っていないかで繋げばいいので購買情報もネットワーク化できる
    つながりの情報だけでは機械学習で扱わせにくい
    全ノードを3次元ベクトルとして表現→3次元空間の中で近さ遠さが計算できる→機械学習に持ち込める
  • ネットワークは隣接行列に表せる
    隣接行列は0が多くてスカスカ sparse
    PCA(主成分分析)で次元縮約して隣接ベクトルを扱う
  • 次元縮約にDeepLearningを使うのが最近のはやり
    AutoEncoder(入力5次元、中で3次元に縮約し、5次元で出力)うまく5次元に戻せるような重み付け
    DeepAutoEncoderを作る
    ※ただし、メモリの容量からノード数には制限があるとのこと。GPUを使っても全てのノードがメモリに置けなくなるらしい

 

LT

GitPitchはheader要素のアルファベットが全部大文字になるなど経験したので、
まとめていただいたLTスライドは重宝しそうです。
また、1リポジトリディレクトリを分けてスライドを作成したり、
自己紹介を共通化するというのは試してみたいです。

gitpitch.com

また、Eelでアプリを作ったというLTもありました。

GitHub - ChrisKnott/Eel: A little Python library for making simple Electron-like HTML/JS GUI apps

 

終わりに

Kubernetes、kaggle、Network embeddingと幅広い話を聞く中で
業務に役立てられそうな事項も知ることができました。
LTの機会もいただきありがとうございます。毎月やっていきたいと思います。

スライドは公開されるそうなので、気を見てアップデートします。

イベントレポート&LT報告 | 第11回 Cogbot勉強会! ~ 行こうぜ、Cogbot の向うへ2018 #cogbot

はじめに

だんないよ、nikkieです。
本日はCogBot勉強会に参加し、AzureのBotとAIの全体像をつかむとともに
業務で触り始めたAzure Machine LaerningについてLTもしてきました。

 

勉強会の概要

第11回 Cogbot勉強会! ~ 行こうぜ、Cogbot の向うへ2018 - connpass

イベント概要

2018年の最初の勉強会は、Cognitive Services のおさらいから始まり、先月GAしたばかりの自然言語処理のサービスである LUIS と Azure Bot Service、昨年末に話題となった Azure Machine Learning Workbench に関する内容をお届けします!

人工知能API Cognitive Services、 ボット開発ツールAzure Bot Service、
深層学習ツールAzure Machine Learning Workbenchと
約2時間でAzureのCognitiveまわりがつかめる濃密なラインナップでした。
業務でAzureの知識が求められているので、こういった機会はありがたいです。

では、聴講時のメモを元に振り返ります。

 

今年こそ始める! Cognitive Services 概要&アップデート

www.slideshare.net

Cognitive Servicesは多少使ったことがあるので、
気になったこと(今後調べること)のメモが中心です。

  • 人工知能とは、「人間の知的能力をコンピュータ上で実現」
    囲碁のAIなどは人間と同じように考えているわけではないが、
    結果を見ると、人間と同じように囲碁を打つことはできている。
  • エイベックスはライブ来場者の顔の写真で年齢、性別、表情を収集
    Face API、Emotion API リアルタイム分析
    チケットは当人が買うとは限らない
  • ナビタイム 鎌倉NAVITIME TRAVEL
    日本語英語の入力受付 LUISなど
  • Customとつくものが出てきているのが最近のCognitive Servicesの傾向
    (分析モデルのカスタマイズができる)
  • GAか否か GAするとAzureのサポートやSLAの対象になる
  • Content Moderator 画像のタグ付け?API 後で調べよう
  • PostmanでAPIアクセス? 後で調べよう
  • Custom Visionはエンジン部分をエクスポートできる
    Swift × Core MLのサンプルあり
  • 言語のAPIには形態素解析のベースとなるようなAPIも提供されている どれのことだろう?調べよう
  • LUISの正式名称がLanguage Understandingになった
  • QnA maker FAQページからBotを作れる
    FAQページ→ナレッジベース(QとAのリスト)→Qが入ってきたらAを返すAPI
    Bot Serviceを作り、iframeで埋め込むところまで簡単にできる
  • Bing Custom Search:自分が調べたいサイトから調べてくれる
    検索対象にしたいサイトを登録する
  • Labにはイベント収集APIもある
  • オススメ https://github.com/Microsoft?q=cognitive
  • オンラインコース(英語) AI School

デモ編のスライドはこちら→Azure Webinar - Cognitive Services 概要[Demo編]_20180123

 

 Azure Bot Service で始めるチャットボット開発入門

www.slideshare.net

Bot Serviceはほとんど触っていないので
ノンコーディングでここまでできるのかーと舌を巻きました。

  • Bot ServiceはAzure Portalから作る(←GAしたからか!)
  • ChatBotと人の間に挟むもの:チャンネル(FB MessangerやSlackなど)
  • ブラウザからコーディングできる(オンラインコードエディター)
  • Web App Botは固定料金。コード変更後手動デプロイが必要
  • Function Botは従量課金。コード更新後自動でデプロイ
  • 開発者はどうやって自然言語認識の精度を上げるかといったところに集中できる
  • GitHubVSTSと連携してCI/CDが可能
  • どのチャンネルからアクセスされているかという分析機能がAzure Portalに組み込まれている
  • ドキュメントは英語だが、シナリオに応じたパターンやコードもGitHubで公開されている
  • ポータルで選べないチャンネルはDirect Lineを使う

デモの手順はブログにまとまっているそうです→

QnA Maker と Azure Bot Service を連携(して QnA Makerの閾値を変更)その2 - BEACHSIDE BLOG

 

Azure Machine Leaning Workbench の使い方 

www.slideshare.net

WorkbenchからもStudioにアクセスできるのかなと想像していたら
実態は深層学習のツールですごい勘違いでした。
深層学習や機械学習を受験に例えるのはうまいと思います。

深層学習の流れ

  • コード書く→デバッグ が入り口 (テストしたら終わりじゃない)
     =脳みそができただけ(知識がない)
  • ハイパーパラメータを変更しながら何度もトレーニング
     脳みそに何を与えるか
      例:勉強法の違い どの問題集やるか、何周するかを先に決める
     ここに時間がかかる(コーディングの先に3週間)
     問題集を何周もすると覚えてしまう:過学習
  • 学習の単位(=ジョブ)ごとに脳みその比較
    →成績が良いものをデプロイ

深層学習ツールとしてのWorkbench

  • ジョブを自動で管理してくれる
     2つのジョブの比較が可能(性能が高い2つを比較して、採用するジョブを決める)
  • ログ出力が自動で保存される
     pythonのprint文やimportするloggerのログ出力
     出力した変数はグラフで可視化もしてくれる
  • ハイパーパラメータも管理してくれる

深層学習の取り組み方

  • 脳みそは0から自分で作らない。用途によってサンプルコードがある。
    コピペしてきて動かす(バグがないか確認)。
  • サンプルコードに問題なさそうなら、データを与える

MNISTのスクリプトを使ってFashion MNISTをやってみる(シャツ、スカート)
服のデータを与えると手書き数字ほどいい精度でない
→精度は出ていないが、活用できそうという手応え

 

LT:Azure Machine Learningでレコメンド(by nikkie)

gitpitch.com

LTをもとにQiitaに手順記事書こうかなと思っています。
レコメンドに興味ある方のお役に立てれば幸いです!

GitPitch使ってみたのですが、ブラウザの読み込みで失敗していて(?)
背景画像がなく、白いスライド連続になってしまうというハプニングがありました。

Python入門者の集いでモザイクのLTしていた人ですよね」とお声がけいただきありがたかったです。
インパクトのある「モザイクの人」路線いいな。実際はモザイクアートですが(笑))

 

LT:笑顔チェッカー

qiita.com

大仏にもEmotion APIが適用できるのは興味深いです。
messageでほっこりしますね。

 

終わりに

LTの貴重な機会をいただきありがとうございました。
AzureのAIやBotについて情報収集でき、
現在の先にある「向こう側」が見えてきたような気がします^^
今回気になったことを今後触っていきます。

LT報告 | Python入門者の集い #6 #PyNyumon

はじめに

だんないよ、nikkieです。
Pythonの入門者向けのイベントでLTしてきた報告をします。
イベントレポートは近いうちに別途まとめます。

 

勉強会の概要

Python入門者の集い #6 - connpass

※LT登壇者募集!
LTテーマは「最近Pythonを触り始めた話」です!

[中略]
「LT経験済枠」

プログラミング自体はやっているけどPythonは初めて
発表したことはあるけどPythonは初めて

 

LTの資料

speakerdeck.com

 

ソースコード

ひどいソースコードですので、修正を最優先で進めていきます

GitHub - ftnext/mosaic-art-python

 

いただいたフィードバック

いろいろな方から声をかけていただけてアウトプットの効果を実感しました。
モチベーションめちゃくちゃ上がりますね!

ユーフォニアム好きです

私も大好きなので、モザイクアートに使いました ^^
配布されているTwitterアイコンの種類が多いという利点があると思います。

ソースコード参考にします

マジックナンバーが溢れかえり、ファイルパスは決め打ち、
メソッドやクラスにまとめられていない箇所が山積というコードなので恐縮です。
そう言っていただけて大変嬉しいですし、
使いやすくなるように修正しなくちゃとモチベーションも上がります。
公開した以上は使い方が私にしかわからない状態はまずいと思うので、
早急にreadmeを用意します。

デモやってください

想定よりも多くの方に声をかけていただいて嬉しかったです。
これまで使ったことのない画像を使ったところバグが見つかったので、
デモで声をかけてくださった方に感謝です。

Slackのロゴでモザイクアートを作成しようとしたところ、IndexErrorが解決できない · Issue #12 · ftnext/mosaic-art-python · GitHub

 

また、画像処理の経験がある Ryo KAJI さんから色々と関連情報を教えていただきました。ありがとうございます!
消化しきれていない事項が多いので、今後調べるリストとして記載します。
取り入れられる事項は取り入れます。

 

終わりに

アウトプットのメリットを存分に感じられました。
気を引き締めてソースコードの修正や引き続きのアウトプットに取り組んでいきます。

イベントレポート |【サポーターズ勉強会】機械学習入門

はじめに

だんないよ、nikkieです。
年が変わってから機械学習案件に配属され、日夜勉強中です。
抱えている疑問を解消できるかと「機械学習入門」という勉強会に参加してきました。

勉強会の概要

【サポーターズ勉強会】機械学習入門 - サポーターズCoLab

イベント概要

非エンジニア&機械学習を詳しくは知らないエンジニア向けの機械学習入門講座を
エンジニア向けにリメイクしてお届けします。

 AI・機械学習を正しく理解し、表層的な情報に惑わされず、使いこなしてほしいという前置きで
勉強会が始まりました。
以下、勉強会中のメモをもとにしたイベントレポートです。
なお、今回の発表は個人の意見であり、所属組織を代表するものではないそうです。

第一部:機械学習とは

  • 教師あり学習:赤ちゃんに教えるイメージ これは猫だよ
    例:スパムフィルタ スパムか非スパムかというデータから判定器を作る→未知のデータを判定
    世のサービスの8割
  • 教師なし学習:特徴が似たグループを見つける(特徴が似たグループが◯個あるということしかわからない)
    例:インスタの投稿解析 2つのグループに分ける
     →人間がこのグループはXXの写真とラベルを付ける
    教師ありと組合せて使われる
  • 強化学習:初期ルールと報酬だけ与えて学習させる しらみつぶしに計算させる
    迷路左手で壁を触って進むと20s 右手だけだと30s 左手+αなら。。。
    ルンバに使われている(掃除可能な床をすべて探索)スタート地点や家具の配置を変えると学習し直し

実例

YouTubeの推薦システム、アルファ碁

第二部:機械学習は万能か

→万能ではない

機械(AI)がなんでもやってくれるわけではない

何ができるのか

前提:大量に蓄積されたデータの中から

  1. 規則性を見つけ出し判定器を作る
  2. データをグループ分けする(クラスタリング
  3. 途中でルールが変わらないなら最適解を見つける(将棋や囲碁

機械学習でできないこと

  • データを集めること
  • データにラベルを付ける
  • 学習方法を決める

回し方

  1. 何をさせるのか決める(実例:ワインの等級を判別)
  2. データ集める
    データセットが公開されている
  3. データ前処理
    特徴量定義(数値に落とし込む)
    特徴量を絞る(主成分分析)
  4. 学習モデル選択(ワインの例は線形モデル)
    直線で切るか、曲線で切るかというイメージ
    13個の特徴量から2,3個選択する:超重要 完全に分けられる線を見つけた
  5. 評価方法を決める
    精度か、時間か、開発コストに見合うか
  6. 判定器(予測装置)の生成 ここだけが唯一機械だけでできること
  7. モデルの評価
    改善サイクルを回すのが非常に重要
    一回作った判定機が間違ったらフィードバック ←誤差の修正の仕組みがある

どんな判定機ができているか可視化できるのは目からウロコでした
(この線より右なら等級A、左なら等級B)


ワインの等級判別の例は以下のサイトなどもあるようです。

SGD(クラス分類)【Pythonとscikit-learnで機械学習:第1回】

 

おわりに

AIに代替される職業が話題になったが、AI vs 人間という構図ではなく
データやAIを活用しない人間 vs AI・機械学習を使いこなす人間 に分かれるのではないか

AI・機械学習を使いこなすには

  1. AI・機械学習を正しく理解する
    進化のスピードにキャッチアップ(何ができて何ができないかの認識を絶えずアップデート)
  2. サービス設計段階で将来的なAIの活用を想定しておく
    どこをAIに任せるか、どんなデータを集めるか
  3. 教師あり学習をしたいなら、例えばリアルタイムにデータにラベル付けできると助かる

業務として扱った時の課題

  1. イデアとAIが結びつかない
  2. 機械がなんでもやってくれると思い込んでいる できないと言っても理解してもらえない
  3. データがあると言われたが、Excel, PowerPointで蓄積されていた

解決策

  • モックアプリを作って目に見える形でアピール ←「振り返るとやるべきだった」
  • 機械学習リテラシーを向上させる

1がクリアされるとアイデアはめちゃくちゃ出てくる
2がクリアされるとコミュニケーションコストが減る
データはExcelと形式が近いスプレッドシートにためてもらう

学習法

 

以上です。

入門ということでバリバリ機械学習している方は少なめだったように思いますが、
情報交換して疑問点が解決でき、貴重な機会となりました。
参加者・運営者の皆様、どうもありがとうございました。

イベントレポート | みんなのPython勉強会#31 #stapy

はじめに

遅くなりましたが、明けましておめでとうございます。nikkieです。
本年もアウトプットを継続していきます。
今回は「みんなのPython勉強会#31」にお邪魔してきました。
2018/01/24 勉強会の資料を追加しました。

勉強会の概要

みんなのPython勉強会#31 - connpass

概要

「みんなのPython勉強会」では、Pythonを中心としてプログラミングを仕事、研究、趣味など様々なシーンに生かす方法を一緒に学びます。プログラマ、WEBエンジニアに限らず、初心者からマスターまで様々なレベルの、いろいろな分野の人が集まるので、「みんな」の勉強会です。お気軽にご参加ください。

 31回のテーマは「オープンソースを武器にする」だそうです。

勉強会プログラム

Pythonでスタートして、Pythonを仕事にするまでの話」

量子コンピュータプログラミング入門」 

python人工知能」 

Pythonを書いて食べていきたいと最近夢想しているので
Pythonでスタートして、Pythonを仕事にするまでの話」を楽しみに参加しました。

以下、講演中のメモをもとに振り返ります。

Pythonでスタートして、Pythonを仕事にするまでの話」

gitpitch.com

「火を焚べ続けるのに必要な3つのこと」のうち素振りの話が特に印象に残りました。実践していきます。
・興味があったらすかさず手を挙げる
・チャンスを逃さないために日頃から素振り
Pythonへの興味と情熱

以下講演内で興味をひいたトピックです。()は私の感想です。
・コードが書けるエンジニアになりたい(ほんとそれ!)
・LT駆動開発(#stapyはLTしやすそうな雰囲気でした。次回狙ってみます)
・仕事探しでPyConJPのスポンサーをチェック(なるほど)
・コミュニティに入ると技術に対してアンテナを張れる、かつ、エンジニアと繋がれる(本当に一石二鳥)

量子コンピュータプログラミング入門」

qiita.com

量子コンピュータは全く追えていない分野だったのですが、
IBM Qなら無料で使うことができるというので少し身近に感じました。

IBM Quantum Computing で計算してみよう

学習ツールの一つとして紹介されたQiitaのアドベントカレンダーを見ると、
少しキャッチアップできそうです。

量子コンピュータ Advent Calendar 2017 - Qiita

python人工知能

www.slideshare.net

機械学習をここ最近勉強しているため、勉強前と比べて理解できる部分が増えてきた実感があります。(と言ってもまだまだですが。。)

・分類:CNN(画像解析)、RNN(時系列解析)、DQN(自動運転、ゲーム)、GAN(キャラクタ生成)
Deep Learningの他にSVMなど機械学習のモデルを並列で用意して出力のいいところどりをするアンサンブル学習
・文章に対して「政治」「スポーツ」のようなジャンル分けをDeep Learningで行う場合、各ジャンル1万文の学習データが必要

興味深かったLT

www.slideshare.net

ツイッターリツイートをトリガーにして、読むべき論文のPDFをIssueに登録する自動化LTは
GitHubのIssueをTODOリストとして使うという発想に感服しました。
他にはWindowsで環境構築するLTもありました。

WindowsでAnacondaを使う環境を作ってみた

終わりに

Pythonで集まったところ、量子コンピュータ機械学習まで話が広がる会で
すごいコミュニティだ、継続して参加していきたいと感じました。
講演者・勉強会関係者の皆さま、並びに出席者の皆様、どうもありがとうございました。

資料はアップされるそうなので、確認次第更新します。

Azure Machine Learningの初歩の初歩

はじめに

本年もお世話になりました。nikkieです。
気になっていた「Azure Machine Learning」について調べてみました。
今回はまだ触っていません。機械学習についてまとめた記事です。

元にした資料

2017年3月に開催されたNSStudy #11の動画や記事を元にしました。
(公開していただきありがとうございます!)

講師の畠山さんのスライドを探したところ、以下のものが近かったです。

www.slideshare.net

 

機械学習とは

機械に学習させること。
=データの中のパターンをコンピュータに探させる
→そのためには人が機械に答えを教える必要がある

機械学習では過去にないパターンにも答えを出そうとする。
→if文を書いて実装するのとは異なり、機械学習では汎用性が得られる

機械学習統計学に基づく。

機械学習の主な用途

  1. 回帰(Regression);値を予測する 教師あり学習
  2. 分類分け(Classification):分類を予測する 教師あり学習
  3. クラスタリング(Clustering);データの構造を理解する 教師なし学習

 

注意点

・機械に学習させる上で、人間が判断するべき箇所がある。

  • データ(CSVを想定)の中でどの列を解析に使うのか
  • データの分布に対してどのような境界線を引くのか
    (例:線形か非線形か=アルゴリズムの選択)

・データの用意が一番大変。
 →Azure Machine Learningに用意されているサンプルデータを参考にするとよい

・1件の例外も許してはならないと考えてしまうと過学習(Overfitting)に陥る。
 (過学習=汎用性が損なわれた状態)
 例外が嫌ならif文を書いて実装したほうがよい

・データが増加するとモデルを再度作成する。
 データの加工、モデルの評価を継続的に行う心構えが必要。

・画像や音声の解析は機械学習よりもディープラーニングに分がある

終わりに

機械学習において例外は受け入れるという考え方は勉強になりました。
汎用性との間のトレードオフということなのだと思います。

適切なアルゴリズムの選択には統計の知識がいるので、
使い始めるのは簡単そうですが、使いこなすのが難しそうなツールという印象です。

心構えはできたので、次は実際に触ってみようと思います。

候補