マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2020.01.01

【OSS情報アーカイブ】scikit-learn

【OSS情報アーカイブ】scikit-learn

※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。

コンテンツ

「scikit-learn」とは

「scikit-learn」基本情報

■概要

scikit-learn(サイキットラーン)とは、Pythonのオープンソース機械学習ライブラリです。

■基本説明

scikit-learnは、Python実装の機械学習ライブラリです。

機械学習アルゴリズムを幅広くサポートしています。分類回帰クラスタ分析(ニューラルネットワーク、サポートベクターマシン、ランダムフォレスト、k近傍法など)を手軽に実装できます。

プロトタイピングとして開発しやすく、大量データを扱わない場合には、そのまま実用できる機能を提供します。

■オフィシャルサイト情報

オフィシャルサイト

→scikit-learn

ライセンス情報

scikit-learnのライセンスは「New BSD License」です。

詳細について、こちらを参照ください。
→GitHub →scikit-learn/scikit-learn →COPYING

ダウンロード

→scikit-learn →Installing scikit-learn

導入事例

「Evernote」などへの導入実績があります。

→scikit-learn →Who is using scikit-learn?

■同様製品

同様な機能を提供する製品として、次のようなものがあります。

オープンソース製品:「Caffe」「Theano」「Chainer​」など。

「scikit-learn」の主な特徴

■数値計算ライブラリ連携

他のPython数値計算ライブラリ(NumPy、SciPy、Pandas、Matplotlibなど)と連携しやすいように設計されています。

「NumPyで作成した行列を機械学習の入力データとして利用する」などの連携を行えます。

■依存するライブラリ

scikit-learnは、次のライブラリに依存します。線形代数演算の事実上の標準技術です。
・BLAS(線形代数ライブラリの標準仕様)
・LAPACK(BLASを基礎として高度な線形代数計算)

「scikit-learn」の主な機能

■分類機能

ラベルとデータを学習し、対象データのラベル予測を行なう機能です。対象オブジェクトがどのカテゴリに属しているかを識別します。

「スパム検出」「画像認識」などの用途に向いています。

サポートアルゴリズム

・SVM(サポートベクトルマシン、線形サポートベクトルマシン)
・K近傍法
・ランダムフォレスト

■回帰機能

回帰データを学習して、実数値を予測する機能です。オブジェクトに関連付けられた連続値の属性を予測します。

「薬物応答予測」「株価予測」などの領域に向いています。

サポートアルゴリズム

・回帰
・ラッソ回帰
・リッジ回帰
・SVR

■クラスタリング機能

似ているデータをまとめてデータ構造を発見する機能です。類似オブジェクトセットに対する自動的グループ化を行います。

「顧客セグメンテーション」「実験結果のグループ化」などの領域に向いています。

サポートアルゴリズム

・クラスタ分析(Clustering)
・K平均法(KMeans)
・混合ガウス分布(GMM)
・平均変位法(MeanShift)

■次元削減機能

データの次元を削減して、「主成分分析」「要因発見」「考慮するランダム変数の数を減らす」などを行う機能です。次段階の分析手法の事前データ処理としても使われます。

サポートアルゴリズム

・主成分分析(PCA)
・非負値行列因子分解(NMF)

■モデル選択機能

パラメータとモデルの比較/検証/選択を行なう機能です。

「パラメータ調整による精度向上」などに利用します。

scikit-learn参考情報①scikit-learnとは(入門編)

scikit-learnの概要について解説している参考サイトを紹介します。

■Scikit-learnで機械学習入門(使い方)

概要

「Python」+「Scikit-learn」で機械学習を行う方法についての入門者向け解説がまとめられています。

解説テーマ

・Scikit-learnとは
・Scikit-learnの使い方
・はじめに
・回帰
・クラスタ分析
・次元削減
・決定木分析
・サポートベクターマシン
・ニューラルネットワーク (0.1.8.0~使用可能)
・他ライブラリとの連携 など

ページリンク

→アルゴリズム速報 →Scikit-learnで機械学習入門(使い方)

■scikit-learn から学ぶ機械学習の手法の概要

概要

「機械学習の基本的な手順」「scikit-learnの機能」「依存ライブラリ」などについて解説されています。

解説テーマ

・機械学習の基本的な手順
・分類 (Classification)
・回帰 (Regression)
・クラスタリング
・次元削減 (Dimensional Reduction)
・BLAS と LAPACK

ページリンク

→Qiita →scikit-learn から学ぶ機械学習の手法の概要

scikit-learn参考情報②scikit-learnのインストール

Python実装のディープラーニングライブラリ「scikit-learn」を各環境にインストールする方法を紹介します。

■オフィシャルサイト「Installing scikit-learn」

概要

scikit-learnオフィシャルサイトのインストール解説(英語版)です。

ページリンク

→scikit-learn →Installing scikit-learn

■Windows編(簡単に導入する方法)

概要

WindowsのPython環境に機械学習ライブラリ「Scikit-learn」をインストールする方法について解説されています。

複数ある「簡単に導入する方法」を参照できます。

解説テーマ

・Scikit-learnとは
・Windows編(簡単に導入する方法)
・WinPythonのインストール方法
・Python(x,y)のインストール方法
・Anacondaのインストール方法
・Windows編(全部自分で導入する方法)
・Ubuntu(Linux)の場合
・Scikit-learnの使い方

ページリンク

→アルゴリズム速報 →【Scikit-learn】Pythonにインストールする方法

scikit-learn参考情報③scikit-learnで使える学習アルゴリズム「SVM」とは

scikit-learn参考情報③scikit-learnで使える学習アルゴリズム「SVM」とは

学習アルゴリズム「サポートベクターマシン(SVM:Support Vector Machine)」の概要について紹介します。

■「SVM」とは

「サポートベクターマシン(SVM:Support Vector Machine)」とは、機械学習方法の1手法です。

「教師あり学習」を用いるパターン認識モデルで、情報データ(画像/音声など)から、意味を持つ対象を選別して取り出すパターン認識を行えます。データを2つのグループに分類する問題に向いています。「分類」や「回帰」へ適用も可能です。

高い識別精度

SVMは、認識性能が優れている学習モデルです。未学習データに対して高い識別性能を得るための工夫がなされています。

主なメリット

・データ特徴の次元が大きい場合でも認識精度が高い
・最適化するべきパラメータ数が少ない
・パラメータ算出が容易
・局所解収束の問題がない
・「マージン最大化」が可能で汎化能力も高い
・コマンド一発で簡単に「分離する平面」を作成できる

主なデメリット

・学習データが増えると、計算量が膨大に増えてしまう
・多クラスの分類にそのまま適用できない

■参考サイト(1) サポートベクターマシンとは

概要

「SVM」について、コンパクトに解説されています。

ページリンク

→AnalyticsNews →サポートベクターマシンとは

■参考サイト(2) 機械学習とは何か? – 自分なりに説明+具体例:サポートベクターマシン-

概要

機械学習からサポートベクターマシンまで解説されています。

解説テーマ

・機械学習とは?
・代表例:サポートベクターマシン
・サポートベクターマシン(以下:SVM)とは?
・サポートベクターマシンを使うなら
・まとめ

ページリンク

→Data Science by R and Python →機械学習とは何か? – 自分なりに説明+具体例:サポートベクターマシン-

■参考サイト(3) SVMについて整理してみた。

概要

「SVM」について、体系的に解説されています。

解説テーマ

1.SVMの概要
2.SVMという手法について
3.コンピュータ将棋でのSVMの活用

ページリンク

→Qiita →SVMについて整理してみた。

■参考サイト(4) サポートベクターマシン(SVM)

概要

「SVM」について学術的に解説されています。

解説テーマ

・2クラスのパターン識別
・マージン最大化
・正例・負例の不等式による表現
・マージン最大の識別線の求め方
・ラグランジュの未定乗数(係数)法
・双対問題への変換
・双対問題の解から識別線を決定する
・N次元データへの拡張

ページリンク

→静岡理工科大学総合情報学部コンピュータシステム学科・知能インタラクション研究室 →ニューラルネットワーク →サポートベクターマシン(SVM)

■参考サイト(5) SVMについて

概要

筑波技術大学大学院の方が、SVMについてまとめられたスライドです。

全51ページに渡って、SVMについて、詳しく解説されています。

解説テーマ

1.SVMの概要
2.線形SVMの理論と計算方法
3.その他のSVM
4.まとめ

ページリンク

→SlideShare →SVMについて

scikit-learn参考情報④scikit-learnで使える学習アルゴリズム「Random Forest」とは

scikit-learn参考情報④scikit-learnで使える学習アルゴリズム「Random Forest」とは

機械学習アルゴリズム「RandomForest」の概要について紹介します。

■「RandomForest」とは

概要

「RandomForest」とは、機械学習方法の1手法で、「分類」「回帰」「クラスタリング」などに用いられます。

仕組みとしては「決定木」の1つで、集団学習アルゴリズムです。

大量の決定木を生成して、それぞれの決定木が出した答えの多数決を取り、最も数が多かったクラスに分類します。

大量の決定木を使用するため、「木が集まっている森(フォレスト、Forest)」というイメージになります。

主なメリット

・学習/評価が高速
・並列化可能(決定木の学習はそれぞれ完全に独立)
・多クラス識別が容易
・実装が比較的容易
・説明変数が多数で欠損していても対応可能(欠損値を許容)
・説明変数重要度(寄与度)を算出できる
・特徴のスケールや距離尺度に影響を受けない
・クロスバリデーションのような評価が可能(Out of Bagエラー計算)

主なデメリット

・説明変数の中で「意味のある変数」が「ノイズ変数」よりも極端に少ない場合にはうまく働かない

■参考サイト(1) 決定木とランダムフォレスト

概要

「RandomForest」の基本である「決定木」の解説をベースにして、「RandomForest」について解説されています。

解説テーマ

・決定木とは
・ランダムフォレストとは
・やってみる(sklearnでの決定木)
・データ用意
・決定木をやってみる
・ランダムフォレストをやってみる
・ランダムフォレストで回帰をやってみる
・sklearnで実行

ページリンク

→Qiita →決定木とランダムフォレスト

■参考サイト(2) 実務でRandomForestを使ったときに聞かれたこと

概要

「RandomForest」について実務的な視点から解説されています。

解説テーマ

・なぜRandomForestは精度が高くなるのか?
・baggingとの違いは何か?
・パラメータチューニングはどうすればよいか?
・実装

ページリンク

→shakezoの日記 →実務でRandomForestを使ったときに聞かれたこと

■参考サイト(3) 【Hivemall入門】RandomForestで毒キノコ推定モデルを作る

概要

「RandomForest」をHiveで実装する例が解説されています。

解説テーマ

1. RandomForestとは?
・まずは決定木から
・どうやって「条件」を取り出すか
・RandomForestは木が森になっただけです。
2. RandomForestで毒キノコ推定モデルを作る
・使うデータはmushroom
・Hiveで前処理
・ついにRandomForest!

ページリンク

→アドテクるびす界 →【Hivemall入門】RandomForestで毒キノコ推定モデルを作る

■参考サイト(4) Random Forest とその派生アルゴリズム

概要

「RandomForest」の派生アルゴリズムと活用例について解説されています。

解説テーマ

・はじめに
・Random Forest
・基本的なアルゴリズム
・派生アルゴリズム
・Extremely Randomized Trees
・Alternating Decision Forests
・Random Ferns
・色々な使い方
・Depth 情報を使った姿勢推定
・画像の領域セグメンテーション
・キーポイントマッチング
・通常の単一カメラでの姿勢推定

ページリンク

→Sideswipe →Random Forest とその派生アルゴリズム

scikit-learn参考情報⑤scikit-learnのPython実装事例

scikit-learn参考情報⑤scikit-learnのPython実装事例

機械学習ライブラリ「scikit-learn」をPython実装した例を紹介します。

■「主成分分析」「MDS」

概要

「主成分分析」と「MDS」の基本的な実装例について解説されています。

解説テーマ

・主成分分析
・MDS
・オマケ

ページリンク

→長久手パラボラ日記 →Scikit-learnを使って主成分分析などを中心に遊んだ

■「分類」「クラスタリング」「次元削減」

概要

「分類」「クラスタリング」「次元削減」「顔認識」などのサンプルコードについて解説されています

解説テーマ

データセット例の読み込み
分類
クラスタリング: 観測値をグループ分けする
主成分分析による次元削減
まとめて: 顔認識
Linear model: from regression to sparsity
モデル選択: estimator とパラメータの選択

ページリンク

→Scipy Lecture Notes →3. パッケージとその応用 →3.6. scikit-learn: Python での機械学習

■「今日なに着てく?」モック

概要

機械学習で「今日なに着てく?」を教えてくれるモック開発に挑戦しているレポートです。

「今日の気温と降水確率」を入力すると、「過去の着たもの実績データ」から、「今日は何を着ていけばよいのか?」について提案をしてくれるものです。

解説テーマ

・データ
・100日分の「なにを着たか?」というデータ
・temperature:気温
・rainfall:降水確率
・outer:アウター(コート等)
・tops:トップ(上着)
・bottoms:ボトム(ズボン)
・推定するデータ
・でははじめに
・機械学習をさせてみる
・推定してみる
・分類の精度を検証する
・今後の課題

ページリンク

→KAYAC engineers' blog  →機械学習をつかって「今日なに着てく?」を教えてもらうためのモック

 

参考元サイト

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

この記事のタグ一覧

おすすめの記事

【デジタル寺田の3分用語解説】「 経済産業省:コンテンツ制作のための 生成AI 利活用ガイドブック 」とは?📘

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 経済産業省:コンテンツ制作のための 生成AI 利活用ガイドブック 」とは?📘

経済産業省による「 生成AI 利活用ガイドブック 」は、企業やクリエイター向けに、安心して「生成AI」を利用するための、「指針」「実例」「注意点」を明示しています。「業務効率化」や「新しいアイデア創出」の支援を目的としています。

【デジタル寺田の3分用語解説】「 2029年問題 」とは?📅

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 2029年問題 」とは?📅

「 2029年問題 」とは、高校でのデジタル教育改革により、新入社員と既存社員間でデジタルスキル格差が拡大する懸念を指します。企業は早急に対応が求められています。この格差は、企業競争力や業務効率にも、影響を及ぼす可能性があります。

【デジタル寺田の3分用語解説】「 VMWare 問題 」とは?🖥️

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 VMWare 問題 」とは?🖥️

「 VMWare 」の仮想化技術は、「ITインフラの効率化」に大きく貢献する技術ですが、Broadcomによる買収後のライセンス変更が大きな問題として注目されています。柔軟で慎重な契約見直しが今後の鍵となります。