サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
GPT-4o
hktech.hatenablog.com
機械学習モデルをスクラッチから実装しようと思い立ったので、第一歩として決定木分類器(Decision Tree Classifer) をPythonで実装してみました。RandomForestやXGBoostなどといった決定木系の機械学習アルゴリズムを使う場面も多いと思うので、その基礎となる決定木分類器について実装をしながら仕組みを理解していきます。 決定木とは 決定木とは木構造を用いて分類または回帰のモデルを構築する手法です。変数を基準に条件分岐を行い、末端のノード(葉ノード)にたどりつくまで分岐をたどることで、分類クラスや回帰の結果を決定するものです。木が深くなるほど過学習が起きやすくなってしまうため、学習時には少ない分岐でより高い識別能力を持つ木を構築することが求められます。 分割の基準となる説明変数とその閾値が優先度の高いものから順に並ぶため、分類の解釈がしやすいといったメリットが
LSTNetの論文*1を読む機会があったので、関連手法であるニューラルネットワークをベースとした時系列予測の手法についてまとめました。本記事では、RNNをはじめとして、その派生であるLSTM、GRU、LSTNetについて紹介していきます。 RNN (Recurrent Neural Network) RNN(Recurrent Neural Network) とは、ある層の出力を別の層の入力として利用するような再帰的構造を持ったニューラルネットワークです。 RNNの各時刻における中間出力は隠れ状態と呼ばれ、これは当該時刻tの時系列情報と前時刻t-1の隠れ状態を組み合わせて活性化したものです。 tanh(ハイパボリックタンジェント)を使った活性化は下式のように表すことができます。 RNNのメリットは、独立した各時点での情報だけでなく前後の時系列情報を活用することができることです。一方で、RN
エンジニアの方のブログでよく見かける、プログラムなどのソースコードを載せる方法についてまとめます。 目次 準備 はてな記法モードへの変更方法 はてなブログにソースコードを表示させる まとめ 準備 大前提として、ブログの設定を「はてな記法モード」に変更する必要があります。 はてな記法モードへの変更方法 [設定] タブ > [基本設定] に移動します。 デフォルトでは「見たままモード」になっているので、「はてな記法モード」に変更しましょう。 ソースコードを載せたのにうまく表示されないという場合のほとんどはこのステップが抜けていると思うので確認してみてください。 はてなブログにソースコードを表示させる Python のソースコードを表示させるためには、下記のように記述してください。 >|python| import numpy as np arr = np.array([1, 2, 3]) ||
Scikit-learnを始めとしたパッケージが充実してきているおかげで、データ分析に関わる人もスクラッチから機械学習モデルを実装する機会が少なくなっています。 しかし、機械学習モデルを理解するためにはそのモデルを実装してみるのが一番早いと言われています。たとえパラメータをいじるだけの作業であったとしても、モデルの理解が深い人とそうでない人では、問題解決の質が変わってきます。 本記事では、最も基本的な分類モデルである k-NN (k-Nearest Neighbor) 法をフルスクラッチで実装したのでご紹介します。 目次 k-Nearest Neighbor法 k-NNをPythonで実装する まとめ k-Nearest Neighbor法 k-Nearest Neighbor 法 (k-NN) は k近傍法とも呼ばれ、分類モデルの中でももっともシンプルに実装できるものとして広く知られてい
前回の記事からだいぶ時間があいてしまいましたが、平成最後ということでひとつ書かせてください。 はじめに 先日登壇した勉強会で「データサイエンティストはエンジニアリングスキルを高めるべき」という趣旨の主張を展開した上で、「エンジニアリングスキルを高めるために競技プログラミングをやっている」と言ったところ、参加者から以下の質問を頂きました。 「競技プログラミングと実務のエンジニアリングはどのように関係があるのですか?」 本記事では上記の疑問に対する自分なりの考えをまとめていこうと思います。 アルゴリズム重視や可読性の低いコードばかりで実務に役立たないと思われがちな競技プログラミングですが、実はいろんな側面で業務に役立つことを学ぶことができます。 今回の記事はエンジニア全般を対象とした話をするので、データサイエンティストでない方にも読んでいただきたい内容になっています。 以下に当てはまる読者には
Pythonを用いてCSVからJSON形式に変換する方法についてソースコードと共にご紹介します。 目次 CSVデータの1行目にヘッダーがある場合 CSVデータの1行目にヘッダーがなく、自分で指定したい場合 まとめ 参考 CSVデータの1行目にヘッダーがある場合 import json import csv json_list = [] # CSV ファイルの読み込み with open('input_data.csv', 'r') as f: for row in csv.DictReader(f): json_list.append(row) # JSON ファイルへの書き込み with open('output.json', 'w') as f: json.dump(json_list, f) # JSONファイルのロード with open('output.json', 'r') a
はじめに 異常検知技術が実用システムに導入される例が増えています。今回は外れ値検知手法として人気が高いアルゴリズムのひとつであるOne class SVMについてご紹介します。 One class SVMとは、機械学習の分類アルゴリズムである Support Vector Machine (SVM) を教師なしの1クラス分類に応用した手法です。正常データとして1つのクラス分を学習させ、識別境界を決定することで、その境界を基準に外れ値を検出します。異常がほとんど発生せず、異常クラスのデータが集まらないようなシステムで異常検知を実現したい場合には有効な外れ値検知手法です。 最後にPythonによる簡単な実装例についてご紹介します。 One Class SVM と SVMの違い One Class SVM と SVM の違いについて理解するためには、まずSupport Vectorとは何かという
コンサルティングファーム(会社)におけるデータサイエンティストの求人が近年増加しています。かつては経営戦略などに力を入れていた外資系コンサルティングファームや、大規模なシステム開発などに強みがあった IT 系コンサルティング企業も、デジタル領域でのデータを活用したビジネスに大きな期待を寄せています。本記事ではコンサルタントとデータサイエンティストの役割の違いについて触れながら コンサルでデータサイエンティストとして働くために必要なスキル データサイエンティストが求められている理由 ということについて、実際にコンサルでデータサイエンティストとして働いている立場からご紹介します。コンサルにデータサイエンティストとして入社したい就活中の学生や、転職を考えている方にとって少しでも参考になれば幸いです。 目次 データサイエンティストとは データサイエンティストの分類 データサイエンティストに必要なス
機械学習の中でも教師なし学習に分類される分野として異常検知という技術があります。研究分野としては近年下火になりつつあるものの、人工知能やAIを使った異常検知技術はビジネス界隈では期待の大きい分野として有名です。 本記事では、異常検知分野のなかでも外れ値検知の一般的な手法についてまとめました。 目次 はじめに ホテリング理論 k-近傍法 (k-NN) Local Outlier Factor (LOF) One class SVM (Support Vector Machine) まとめ はじめに 外れ値検知はビジネスにおけるさまざまな場面で使用されています。 外れ値検知とは、正常時の状態から外れた点を見つけ出す異常検知の種類のひとつです。クレジットカードの利用状況の解析などでは、異常な行動を即時に検出することで被害の拡大を防ぐことができます。また、工場などのモニタリングでは、機械の異常状態
教師なし学習に分類される異常検知技術のなかでも、外れ値検知という分野は近年多くのシステムで導入され始めています。今回は、外れ値検知技術のひとつであるLocal Outlier Factor (LOF) について紹介します。 目次 Local Outlier Factor (LOF) とは 定式化 まとめ Local Outlier Factor (LOF) とは LOF はあるデータの集まりの中から外れ値を見つけ出す外れ値検知アルゴリズムのひとつです。原論文*1は2000年に発表で最新技術とは言えないものの、現在も実務に耐えうる検知性能とシンプルな実装が魅力的な手法です。 LOFは空間におけるデータの密度に着目します。特に、自身の点から近傍 k 個の点といかに密かであるかを表す局所密度 (Local density) という指標に注目します。なお、ここでいう k 近傍とはある点から最も距離
ニューラルネットワークおよび Deep Learning の応用として、オートエンコーダを用いた異常検知について紹介します。 目次 オートエンコーダとは オートエンコーダを用いた異常検知 まとめ オートエンコーダとは オートエンコーダ (Auto encoder) とは自己符号器と呼ばれるニューラルネットワークの一種です。ニューラルネットワークにはさまざまな役割を果たすものがありますが、オートエンコーダは入力データを次元削減して圧縮し、出力データを生成するニューラルネットワークです。この圧縮処理はエンコードと呼ばれ、オートエンコーダの名前の由来となっています。 統計・機械学習分野で使われている次元圧縮手法としては主成分分析 (PCA) が有名ですが、オートエンコーダの圧縮処理はこれとほとんど同じであると考えてよいでしょう。 ニューラルネットワークは入力データに対して、所望の出力になるように
このページを最初にブックマークしてみませんか?
『hktech.hatenablog.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く