機械学習のアルゴリズム

機械学習のアルゴリズムは大きく分けて、教師付き学習、半教師付き学習、教師なし学習、強化学習に大別できます。本ドキュメントでは、機械学習のアルゴリズムを大別する方法について説明します。機械学習は、データからパターンを学習し、予測や意思決定を行うための技術であり、そのアルゴリズムは主に四つのカテゴリに分類されます。それぞれのカテゴリには独自の特性と適用範囲があり、理解することで適切なアルゴリズムを選択する手助けとなります。

教師付き学習

教師付き学習は、入力データとそれに対応する正解ラベルが与えられる学習方法です。このアルゴリズムは、与えられたデータを基にモデルを訓練し、新しいデータに対して予測を行います。代表的なアルゴリズムには、線形回帰、ロジスティック回帰、サポートベクターマシン(SVM)、決定木、ランダムフォレスト、ニューラルネットワークなどがあります。

SVMによる分類のサンプル

半教師付き学習

半教師付き学習は、教師付き学習と教師なし学習の中間に位置する手法です。少量のラベル付きデータと大量のラベルなしデータを使用してモデルを訓練します。このアプローチは、ラベル付けが困難または高コストな場合に特に有効です。半教師付き学習は、データの構造を利用して、ラベルなしデータからも情報を引き出すことができます。

半教師付き学習は大量のデータがあり、教師がついているデータと教師がついていないデータが混在している場合に有効です。例えば、医療データなどで診断自体を下すのが大変な場合、すべてのデータに教師をつけるのは現実的ではありません。しかし、データはあるのでそれをモデルに組み込めないかというのは当然の要求です。

半教師付き学習の例

1. 医療画像の分類

医療データでは、すべての画像に対して専門家によるラベル付けが非常に時間とコストがかかるため、半教師付き学習が有効です。例えば、X線画像の診断において、一部の画像に対して専門家が疾患の有無をラベル付けし、残りの多数の画像はラベルなしで使用します。半教師付き学習は、この少量のラベル付きデータを利用して、ラベルなしデータからも学習し、疾患の有無を分類するモデルを構築します。

2. スパムメールの検出

メールフィルターの構築では、ユーザーがスパムと判断したメールは少量ですが、多くのラベルなしメールデータがあります。半教師付き学習を使用して、少量のスパムラベル付きメールと大量のラベルなしメールデータを組み合わせ、スパム検出モデルを訓練することが可能です。

3. 商品レビューの感情分析

Eコマースの分野では、商品レビューの感情分析に半教師付き学習が利用されます。一部のレビューに対してポジティブ・ネガティブのラベルを付け、そのラベル付きデータと大量のラベルなしレビューを用いて感情分析モデルを構築します。これにより、すべてのレビューを自動的に分析し、顧客満足度を評価することができます

教師なし学習

教師なし学習は、ラベルなしのデータを用いてデータの構造やパターンを発見する手法です。このアルゴリズムは、クラスタリングや次元削減などのタスクに使用されます。代表的なアルゴリズムには、k-meansクラスタリング、階層的クラスタリング、主成分分析(PCA)、t-SNEなどがあります。

教師なし学習の例

強化学習

強化学習は、エージェントが環境と相互作用しながら最適な行動を学習する手法です。エージェントは、行動を選択し、その結果に基づいて報酬を受け取ります。報酬を最大化するために、エージェントは試行錯誤を通じて学習を進めます。強化学習は、ゲームプレイやロボット制御、自動運転車などの分野で広く応用されています。

セブンイレブンの蹄鉄

セブンイレブンの不振が色々と話題になっています。YouTubeとかでも色々とポストされています。このへんとか
セブン社長、”無能”で有名だったことが判明。客をフル無視した結果、客離れ深刻化して悲惨な結果に…【ゆっくり解説】、とはいえ見えてないことも色々あって、一つは2019年という年、これは今の社長とかの現政権が出来た年なんだけど、この辺にマジックがあると思っていて、まず、2018年これはセブンペイという問題案件が起きた年で、セブンペイの終焉が2019年です。このセブンペイを私はその後の惨劇も絡めて、SEVEN PAINと呼んでいます。

現状、最大の問題は元々、セブンイレブンは商品が評価されていましたが、現状、その商品で不満を呼んでいるということです。そして、買収騒動なども含めて、戦略的なカードを切るどころではないということです。恐らく、提携などを含めて、戦略的なカードは現在の騒動の中では難しいと考えざるを得ません。なぜなら、買収のターゲットになっている以上、いかに、提携などを進めても状況次第ではゼロクリアされかねず、足元を見られるからです。

さて、セブンペイでセブンイレブンは何をしたかったのか、今となっては過程でしかありませんが考えてみます。

    • 決済手数料の最小化
    • ラストワンマイルへのリーチ

決済手数料の最小化は説明の必要はないでしょう。ラストワンマイルへのリーチというのは、例えば、Suicaなどに頼れば、リアルタイムな決済情報は手に入りません。そして、決済時に例えば、クーポンを表示するなどの施策も困難です。恐らく、こういった施策の実現が目的だったと思います。そのため、Nanacoからの移管を図ったわけです。しかし、SEVEN PAINでこの構想は無残な夢想に終わりました。ここから一歩も抜け出せていないわけです。

今のままですと、ファミペイを進めるファミマ、auとの一体化を進めるローソンにはおいて行かれるだけでしょう。

Jupyer環境をWSL上に構築する 2020

本アーティクルのオリジナルはhttps://technow.grayrecord.com/2020/04/19/jupyter-environment-on-wsl/になります。

前提条件

項目内容
使用ディストリビューションUbuntu 18.04 LTS
Python 環境Anaconda

AnacondaでJupyter環境を構築する

Python環境の構築はデータサイエンティストを目指す人のpython環境構築 2016を参考にして、一部のステップをアップデートしています。

環境構築方法

  1. pyenvのインストール
    git clone https://github.com/yyuu/pyenv.git ~/.pyenv
    echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
    echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
    echo 'eval "$(pyenv init -)"' >> ~/.bashrc
    source ~/.bashrc
    
  2. anacondaのインストール
    pyenv install -l | grep ana
    # 最新版を確認する
    pyenv install anaconda3-yyyy.MM
    # 先のステップで確認した最新版にする
    pyenv rehash
    pyenv global anaconda3-yyyy.MM
    conda update conda
    conda init bash
    # PowerShellの場合、powershellに変える
    source ~/.bashrc
    
  3. Windows Terminal Previewのインストール

MicrosoftストアからWindows Terminalをインストールする。

分析環境をWindows上に構築する 2020

本アーティクルはhttps://technow.grayrecord.com/2020/04/19/jupyter-environment-on-windows/からになります。

環境の選択

環境構築については、Windowsに限定しても、いくつかの選択肢があります。

Pythonについては、CPythonを標準の配布物から、Anaconda、Microsoft Storeなど
複数の入手経路があります、この文章ではいくつかの理由から、Anacondaを使用しています。
現在は、AnacondaをAnacondaのサイト上から入手していますが、
Anacondaはscoopのextraバケットにもあります。

scoopのインストール

  1. スタートからPowerShellを起動する
  2. PowerShellの設定変更
    Set-ExecutionPolicy RemoteSigned -scope CurrentUser
    
  3. PowerShellからのScoopのインストール
    iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
    

gitのインストール

scoop install git

Anacondaのインストール

Anaconda Individual Editionから最新版をインストールする。

Windows Terminalのインストール

MicrosoftストアからWindows Terminalをインストールする。

Visual Studio Codeのインストール

公式サイトから最新版をダウンロードしてインストールする。

SingularityのWSL2への構築

本記事はQiitaに投稿した記事になります。

SingularityコンテナをWSL2上に構築しました。構築環境はSingularityの公式サイトの記述に基づき、Ubuntu 22.04上とします。 参考となるドキュメントは https://docs.sylabs.io/guides/latest/admin-guide/installation.html#installation-on-windows-or-mac に存在します。このドキュメントに従えば、Singularity 4.0.0がインストールされます。

手順としては以下の通りになります。

wget https://github.com/sylabs/singularity/releases/download/v4.0.0/singularity-ce_4.0.0-jammy_amd64.deb
sudo apt install ./singularity-ce_4.0.0-jammy_amd64.deb

まず、Singularity 4.0.0のUbuntu 22.04用のdebファイルを取得します。しかる後に、debファイルをaptコマンドでインストールします。当方で実行したときにはいくつか気になるメッセージが出力されていましたがインストール自体は行われているようです。以下のメッセージの表示理由等は未解明です。

N: Download is performed unsandboxed as root as file ‘/home/gorn/singularity-ce_4.0.0-jammy_amd64.deb’ couldn’t be accessed by user ‘_apt’. – pkgAcquire::Run (13: Permission denied)

さて、Singularityがインストールできたので確認してみます。

以下のファイルをex001.defとして作成します。

Bootstrap: docker
From: ubuntu:22.04

%post
    apt-get -y update
    apt-get -y upgrade

%runscript
    echo "Hello, Ubuntu"

以下のコマンドでビルドします。

singularity build ubuntu.sif ex001.def

Ubuntu 22.04のイメージとなります。

Shellでコンテナの中に入ってみます。

singularity shell ubuntu.sif
とりあえず、動きは確認できました。