忍者ブログ
統計、機械学習、AIを学んでいきたいと思います。 お役に立てば幸いです。

【機械学習の知識】データマイニングの概要と主要な手法

膨大なデータの中に眠っている、人間では気づけないような貴重なルールやパターンを見つけ出したい。データウェアハウスなどに蓄積されたビッグデータから、ビジネスに役立つお宝(知識)を発掘するための技術が、データマイニングです。

1. 【 概要 】

データマイニングとは、一見何の因果関係もないと思われる膨大なデータの集まりから、統計学や機械学習の手法を用いて規則性や法則性を発見する作業です。

例えば、「特定の食べ物と飲み物の組み合わせが同時に最も購入されやすい」といった隠れたビジネスルールを発見し、組織の業績向上やマーケティング施策に繋げます。一般的には、データウェアハウス(DWH)に蓄積されたクレンジング済みの大量データに対して行われます。


2. 【 基本手順(代表的な4つの手法) 】

(1) 相関関係/類似性分析(アソシエーション分析)
・データ同士の「同時に起こる関係性」に関するルールを発見する。

(2) クラスタリング
・あらかじめ基準を決めず、統計的な類似性によってデータを自然にグループ分けする。

(3) クラシフィケーション(分類)
・明確なルールに基づき、新しいデータを既存の決まったクラスに割り当てる。

(4) 時系列分析
・時間の経過に伴うデータの変化から、未来の予測や時間的な類似性を発見する。

3. 整理:各手法の具体的な処理内容

データマイニングで用いられる4つのアプローチについて、具体的な例を交えてステップごとに深く見ていきましょう。

【 各手法の具体的な処理内容 】

手法(1):相関関係/類似性分析
「商品Aを買う人は、商品Bも一緒に買いやすい」といった購入履歴の傾向を分析します。
ECサイトの「この商品を買った人はこんな商品も買っています」というレコメンド機能のベースとなる技術です。

手法(2):クラスタリング
正解ラベルがない状態のデータに対し、コンピュータが自発的に「似ている者同士」を集めます。
顧客データを購買金額や頻度で「優良顧客」「休眠顧客」などのグループに自動で取り分ける際に使われます。

手法(3):クラシフィケーション
「過去の解約者データ」などを学習させ、新しく入ってきたデータが「継続」か「解約」のどちらに属するかを判定します。
あらかじめ決められた枠組み(クラス)へ綺麗に分類するのが目的です。

手法(4):時系列分析
過去の売上推移やアクセス数の増減パターンをもとに、来月の需要を予測したりします。
「毎年この時期に数値が跳ね上がる」といった、時間軸に紐づく規則性を抽出します。

4. 関連して押さえたい「OLAP(多次元分析)とデータマイニングの違い」

データウェアハウスを活用する手法として、データマイニングと並んでよく登場するのが「OLAP(Online Analytical Processing)」です。これらは「アプローチの出発点」が決定的に異なります。

OLAPは、まず利用者が「男性より女性の方がこの商品を買っているのではないか?」といった仮説を自ら設定します。その仮説が正しいかどうかを、ツールを使ってデータを多角的にグラフ化・集計しながら「検証」していく手法です(人間主導)。

一方、データマイニングは、人間が仮説を持っていなくても、コンピュータ自身が大量のデータを探索し、人間が思いつきもしなかった新しいルールや未知のパターンを自動的に「発見」してくれる手法です(システム主導)。実務では、この両者をバランスよく組み合わせて分析を進めます。


5. 補足:相関分析の有名トピック「ビールと紙おむつ」

データマイニングの「相関関係分析」において、世界で最も有名な事例がアメリカのスーパーマーケットでの逸話である「ビールと紙おむつ」です。

膨大なPOSデータ(レジの販売データ)をマイニングした結果、「金曜日の夕方に紙おむつを買う父親(男性)は、一緒に缶ビールをまとめ買いしていく」という、人間が頭で考えているだけでは絶対に気づけない奇妙な相関ルールが見つかりました。

この発見をもとに、店側が「おむつ売り場のすぐ横にビールを並べて配置した」ところ、両方の売上がさらに跳ね上がったと言われています。これこそが、データマイニングがビジネスに莫大な利益をもたらすことを証明した象徴的なトピックです。


6. まとめ

データサイエンスやビッグデータ活用の核となる「データマイニング」。人間主導で仮説検証を行うOLAPとは異なり、相関分析、クラスタリング、分類、時系列分析といった強力な技術を駆使して、データの中からビジネスの勝機となる隠れたルールを自動で発掘できるのが最大の強みです。DWHに眠るデータを価値ある資産に変えるために、各手法の特徴をしっかり押さえておきましょう!


PR

【機械学習の知識】データ前処理の基本手順

機械学習において、クレンジングによって汚れを取り除いたデータは、そのままではまだAIが効率よく学習できません。データの単位を揃えたり、コンピュータが理解できる形に翻訳したりして、モデルの性能を最大限に引き出すための加工プロセスが「データ前処理」です。

1. 【 概要 】

データ前処理とは、機械学習モデルの学習効率や予測精度を高めるために、データを最適な状態へと変換する一連の手順です。数値の桁数を揃えるスケーリングや、文字データを数値に変えるエンコーディング、データの分割など、実務で必須となる6つの主要なプロセスを整理します。


2. 【 基本手順 】

(1) データのスケーリングを行い、特徴量のスケールを統一する
(2) 特徴量のエンコーディングで、カテゴリデータを数値に変換する
(3) データをモデルの訓練データとテストデータへ分割する
(4) 次元削減を行い、重要な情報を残して特徴量の数を減らす
(5) 特徴量エンジニアリングで、予測に役立つ新しい特徴量を生成する
(6) データの平滑化やノイズ除去を行い、データのブレを抑える

3. 整理:各ステップの具体的な処理内容

データ前処理で行われる具体的な手法とポイントを、ステップごとに深く見ていきましょう。

【 各プロセスの具体的な処理内容 】

ステップ(1):データのスケーリング
「家賃(数万円)」と「面積(数十平米)」のように、単位や桁数が大きく異なる特徴量をそのまま扱うと、AIが桁数の大きな項目ばかりを重視してしまいます。これを防ぐためにスケールを統一します。
1.1 標準化:データの「平均を 0、分散を 1」にする変換です。外れ値の影響を受けにくい特徴があります。
1.2 正規化:データを「0 から 1 の範囲」に収める変換です。最小値が0、最大値が1になります。

ステップ(2):特徴量のエンコーディング
AIは「男性・女性」や「都道府県名」のような文字(カテゴリデータ)をそのまま計算できません。そのため、数値データに翻訳します。
2.1 One-Hotエンコーディング:カテゴリごとに新しい列を作り、該当箇所を 1、それ以外を 0(ダミー変数)にする変換です。
2.2 ラベルエンコーディング:「東京=0」「大阪=1」のように、各カテゴリに一意の整数を割り振る変換です。

ステップ(3):データの分割
作成したモデルの本当の実力を測るために、手元のデータを「学習用の訓練データ」と「検証用のテストデータ」の2つにあらかじめ分割しておきます。

ステップ(4):次元削減
データの項目数(特徴量の次元)が多すぎると、計算時間がかかり予測精度も落ちることがあります(次元の呪い)。主成分分析(PCA)などを用いて、重要な情報を保ったまま項目数をギュッと減らします。

ステップ(5):特徴量エンジニアリング
元のデータをもとに、「日付から『曜日』を取り出す」「購入額と回数から『顧客単価』を作る」といった、モデルの性能向上に直結する新しい項目を人間の知見で生成します。

ステップ(6):データの平滑化やノイズ除去
株価やセンサーデータなどの時系列データに含まれる突発的なギザギザ(ノイズ)を除去します。移動平均などを利用してデータをなめらかにすることで、全体のトレンドを捉えやすくします。

4. 関連して押さえたい「前処理における情報漏洩(データリーケージ)の罠」

データ前処理を行う際、機械学習の初心者が最も注意しなければならないのが「データリーケージ(情報漏洩)」という罠です。

例えば、ステップ1のスケーリング(標準化や正規化)を行う際、データを「訓練データ」と「テストデータ」に分割する前に、データ全体に対して平均値や最大値を計算してスケーリングを適用してしまうケースが多々あります。

これを行ってしまうと、本来はモデルが「知らないはず」のテストデータの情報(平均値など)が、訓練データ側に漏れ出して(リークして)しまいます。その結果、手元での検証スコアは異常に高くなるものの、いざ実戦で未知のデータを予測させると全く当たらないモデルになってしまいます。前処理の計算は、必ず「データを分割した後に、訓練データの基準を使って適用する」という正しい手順を徹底しましょう。


5. 補足:Python(Scikit-learn)での代表的な前処理クラス

実際の機械学習開発(Python)で、データ前処理を行う際によく使われるScikit-learnの代表的なクラスをまとめました。
実務コードを読む際のカンペとしてお役立てください。

# 1. データのスケーリング
from sklearn.preprocessing import StandardScaler # 標準化
from sklearn.preprocessing import MinMaxScaler # 正規化

# 2. 特徴量のエンコーディング
from sklearn.preprocessing import OneHotEncoder # One-Hot
from sklearn.preprocessing import LabelEncoder # ラベル

# 3. データの分割
from sklearn.model_selection import train_test_split # 訓練/テスト分割

# 4. 次元削減
from sklearn.decomposition import PCA # 主成分分析

6. まとめ

データサイエンスや機械学習の現場において、モデル構築の成否を分ける最重要フェーズが、この「データ前処理」です。スケーリング、エンコーディング、分割、次元削減、特徴量エンジニアリング、平滑化という6つの基本手順それぞれの目的と処理内容をしっかりと理解し、機械学習モデルが最も力を発揮できる形へとデータを美しく仕立て上げられるようになりましょう!


【機械学習の知識】データクレンジングの基本手順

機械学習モデルにどれだけ優れたアルゴリズムを使っても、入力するデータが汚れていては正しい予測結果は得られません。「ゴミを入れたらゴミが出てくる(Garbage In, Garbage Out)」を防ぐために、データを綺麗に整える必須のプロセスがデータクレンジングです。

1. 【 概要 】

データクレンジングとは、収集された生データの中に含まれる「欠損値(空欄)」「重複」「異常値(外れ値)」「表記ゆれ」などの不完全な部分を特定し、削除や修正を行う一連の処理です。機械学習の前処理において最も時間がかかり、かつモデルの精度を大きく左右する重要なプロセスです。


2. 【 基本手順 】

(1) 欠損値(データの空欄)の処理を行う
(2) 重複している不要なデータを削除する
(3) 異常値(外れ値)を検出して修正または削除する
(4) 単位や日付などのデータ形式を統一する
(5) 矛盾している不整合データを修正する

3. 整理:各ステップの具体的な処理内容

データクレンジングの具体的なアプローチと処理のポイントを、ステップごとに深く見ていきましょう。

【 各プロセスの具体的な処理内容 】

ステップ(1):欠損値の処理
データが存在しない空欄(欠損値)への対応は、大きく分けて3つあります。
1.1 削除:欠損値を含む行や列をまるごと消去する最もシンプルな方法です。
1.2 代表値で埋める:全体の「平均値」や「中央値」、カテゴリデータであれば最も頻出する「最頻値」で空欄を補填します。
1.3 予測補完:他の正常なデータをもとに、機械学習モデルなどを使って欠損している値を予測して埋める高度な手法です。

ステップ(2):重複データの削除
システムの不具合などで全く同じデータが複数回登録されてしまっている場合、モデルがそのデータを過剰に重視してしまう原因になります。一意な1件だけを残して重複を排除します。

ステップ(3):異常値の検出と修正
「年齢が150歳」「価格がマイナス」といった、現実的にあり得ない数値や、統計的に他から大きく外れた「外れ値」を検出します。これらは入力ミスであることが多いため、正しい値に修正するか、ノイズとして削除します。

ステップ(4):データ形式の統一
同じ「日付」でも「2026/06/27」と「2026年6月27日」が混在していると、コンピュータは別物と判断してしまいます。文字列の形式や数値の単位(円と千円など)を1つのフォーマットに一元化します。

ステップ(5):不整合データの修正
「ステータスは『退会済み』なのに、最終ログイン日が本日になっている」といった、データ間の矛盾(不整合)をチェックし、業務ルールや前後の文脈に合わせて正しい状態へと書き換えます。

4. 関連して押さえたい「データクレンジングと特徴量エンジニアリングの違い」

データ分析の現場では、「データクレンジング」と「特徴量エンジニアリング(特徴量生成)」という言葉がよく並んで登場しますが、これらは目的が異なります。

データクレンジングは、データに含まれるマイナス要素(間違い、汚れ、ノイズ)を取り除き、データを「マイナスからゼロ(正常な状態)」に戻す作業を指します。

一方で特徴量エンジニアリングは、正常になったデータ同士を掛け合わせたり加工したりして、AIが学習しやすい新しい項目を作り出す「ゼロからプラス(価値の向上)」にする作業です。強力な特徴量を作るためにも、まずは土台となるデータクレンジングが完璧に行われている必要があります。


5. 補足:Python(Pandas)での代表的なクレンジング関数

実際の機械学習開発(Python)で、データクレンジングを行う際によく使われる有名なPandasの関数をまとめました。
実務コードを読む際のカンペとしてお役立てください。

# 1. 欠損値の処理
df.dropna() # 欠損値を削除する
df.fillna(値) # 欠損値を指定した値(平均値など)で埋める

# 2. 重複データの処理
df.duplicated() # 重複しているデータを見つける
df.drop_duplicates() # 重複した行を削除する

# 3. データ形式の統一
pd.to_datetime(df['日付']) # 文字列を日付型に一括変換する

6. まとめ

データサイエンスや機械学習の現場において、モデルのポテンシャルを最大限に引き出すための最重要項目が、この「データクレンジング」です。欠損値処理(削除・代表値補填・予測補完)、重複削除、異常値修正、形式統一、不整合修正という5つの基本手順を徹底し、AIがスムーズに学習できる『綺麗で誠実なデータ』を用意できるようになりましょう!



【機械学習の知識】数式なしでわかる統計モーメントの仕組みとアルゴリズム

データの集まり(分布)がどのような形をしているかを数値で表現したい。平均値や分散だけでなく、左右の非対称さや尖り具合までを系統的に捉えるための概念が、統計モーメント(積率)です。

1. 【 概要 】

統計モーメントとは、確率分布やデータの「形状の特徴」を段階的に切り出すための指標です。1次、2次、3次、4次と次数が上がるにつれて、データの中心位置から始まり、広がり方、非対称性、尖り具合といった、より詳細な形状の情報が得られるようになります。


2. 【 基本アルゴリズム 】

1次モーメント ・・ 中心の位置の分布(平均値)
データの重心がどこにあるかを表す、最も基本的な指標です。

2次モーメント ・・ ちらばり(分散)
データが中心(平均)からどれくらい広く散らばっているかを表します。

3次モーメント ・• 歪度(わいど)
分布の左右の「非対称さ」や傾き具合を表します。

4次モーメント ・• 尖度(せんど)
分布の頂点がどれくらい「尖っているか」、または裾野がどれくらい厚いかを表します。

3. 整理:各次数の具体的な処理内容

統計モーメントは、次数ごとにデータの異なる特徴を計算します。それぞれのステップと意味を具体的に見ていきましょう。

【 各モーメントの具体的な処理内容 】

1次モーメント(平均値)の処理
すべてのデータを足し合わせて、データの個数で割ることで、分布の「重心(中心の位置)」を特定します。

2次モーメント(分散)の処理
各データが「平均値からどれだけ離れているか(偏差)」を計算し、それを2乗したものの平均をとります。2乗することで、中心からの「距離(ちらばり)」を正の数として正しく評価できます。

3次モーメント(歪度)の処理
平均からの偏差を3乗して計算します。3乗するとプラスとマイナスの符号が残るため、分布の裾が右側に伸びているか、左側に伸びているかという「非対称さ」が分かります。

4次モーメント(尖度)の処理
平均からの偏差を4乗して計算します。4乗することで、中心から極端に離れたデータ(外れ値)の影響が強調され、分布の頂点の「尖り具合」や「裾野の厚み(外れ値の出やすさ)」を浮き彫りにします。

4. 関連して押さえたい「機械学習(特徴量エンジニアリング)への応用」

この統計モーメントは、機械学習において非常に重要な「特徴量エンジニアリング」の技術として応用されています。

例えば、音声データやセンサーデータ(時系列データ)を機械学習モデルに入力する際、そのままの波形データでは複雑すぎて学習がうまくいきません。そこで、一定時間ごとのデータの「平均(1次)」「分散(2次)」「歪度(3次)」「尖度(4次)」を計算し、波形の特徴をぎゅっと凝縮した数値(特徴量)に変換してからモデルに投入します。

このように、統計モーメントを使うことで、複雑なデータの性質をシンプルかつ強力に表現できるようになります。


5. 補足:正規分布を基準にする「歪度と尖度」の数値

データ分析で3次・4次モーメント(歪度・尖度)を扱う際、最も美しい対称の形である「正規分布」が基準になります。

歪度:完全に左右対称な正規分布では「0」になります。右に裾が長い分布(左側にデータが集中)ならプラス、左に裾が長い分布ならマイナスの値をとります。
尖度:数式の定義の仕方にもよりますが(正規分布の値を引く補正を行う場合)、正規分布の尖度を「0」とします。正規分布より頂点が鋭く尖っている分布はプラス(正)、平べったい分布はマイナス(負)の値をとるため、視覚的にデータの尖り具合を判断できます。


6. まとめ

データサイエンスや機械学習の現場において「データの形状を1次から4次の段階的な特徴で表す手法」と言えば、この統計モーメントです。中心(1次)、ちらばり(2次)、歪度(3次)、尖度(4次)というアルゴリズムの階層的な繋がりを理解し、データの性質を深く見極められるようになりましょう!


【機械学習の知識】数式なしでわかるブートストラップ・リサンプリングの仕組みとアルゴリズム

限られたデータから統計的な推測を行いたい。しかし、何度もデータを集め直すのは現実的に不可能。その限界を「何度も復元抽出する」というアイデアで突破するのが、ブートストラップ・リサンプリングです。

1. 【 概要 】

ブートストラップ・リサンプリングとは、手元にある元のデータセット(サンプルサイズ n)から、重複を許して(元に戻しながら)ランダムにデータを取り出し、新しい疑似的なデータセットを何度も作り出す手法です。これにより、手元のデータだけでは分からなかった「統計量のばらつき(分散や信頼区間)」を視覚的・計算的に評価できるようになります。


2. 【 基本アルゴリズム 】

サンプルサイズを n とする。
(1) n 個の標本を抽出して、その平均を記録する。標本を元に戻す。
(2) この処理を N 回繰り返す。
(3) N 個の結果を使って、統計量などを計算する。

3. 整理:各ステップで何が行われているのか?

一見するとシンプルな処理ですが、データサイエンスにおいて非常に強力な効果を発揮します。それぞれのステップを具体的に見ていきましょう。

【 アルゴリズムの具体的な処理内容 】

ステップ(1):復元抽出と記録
元のデータからランダムに1個選び、記録したら「また元のデータの中に戻す」という操作(復元抽出)を n 回 繰り返して新しいデータセットを作ります。この新しいデータセットの平均値などの統計量を計算し、記録します。同じデータが2回以上選ばれることもあれば、1度も選ばれないデータもあります。

ステップ(2):N回の繰り返し
ステップ(1)の「n個選んで平均を記録する」という一連の処理を、十分に大きな回数(N回。一般的に数百〜数千回)繰り返します。手元にN個の「疑似的な平均値のデータ」が集まることになります。

ステップ(3):統計量の計算
集まった N 個 の結果の分布を見ることで、その統計量がどれくらいバラつくのか(標準誤差)を求めたり、95%信頼区間を推定したりします。

4. 関連して押さえたい「アンサンブル学習(バギング)への応用」

このブートストラップ・リサンプリングは、統計推定だけでなく、機械学習において高い予測精度を誇るアルゴリズムの基礎にもなっています。
代表例が「バギング(Bootstrap Aggregating)」です。バギングでは、ブートストラップ法によって大量の異なるデータセットを作り出し、それぞれで決定木などの弱学習器を並列に訓練します。これらを組み合わせたモデルが、機械学習で非常によく使われる「ランダムフォレスト」です。


5. 補足:一度も選ばれないデータ(約37%)の秘密

サンプルサイズ n が十分に大きいとき、ブートストラップ抽出において元のデータから「一度も選ばれないデータ」は理論上、全体の約36.8%(約37%)存在します(数式では (1 - 1/n)^n が 1/e に収束するため)。
機械学習のランダムフォレストなどでは、この選ばれなかった約37%のデータを「Out-of-Bag(OOB)データ」と呼び、モデルの性能をテストするための検証用データとして有効活用しています。


6. まとめ

データサイエンスや機械学習の現場において「元に戻しながら何度もデータを集め直す手法」と言えば、このブートストラップ・リサンプリングです。手元にある限られたデータからでも、計算機のパワー(反復処理)を使って統計的な信頼性を評価したり、強力なアンサンブルモデルを作ったりできる重要なアルゴリズムですので、確実に仕組みを押さえておきましょう!