Hello there, ('ω')ノ
📌 1. 機械学習とは?
✅ AI・機械学習・ディープラーニングの違い
「AI(人工知能)」という言葉はよく聞きますが、機械学習やディープラーニングとの違いを整理すると以下のようになります。
📌 AI(人工知能) - 人間のように学習・判断する技術の総称 - 例: チャットボット、画像認識、自動運転
📌 機械学習(Machine Learning) - データを使ってコンピュータが学習する手法 - 例: 価格予測、スパムメール分類
📌 ディープラーニング(Deep Learning) - 機械学習の一種で、ニューラルネットワークを活用 - 例: 画像認識、音声認識、自然言語処理(ChatGPT)
➡ AI ⊃ 機械学習 ⊃ ディープラーニング の関係になっている!
📌 2. 教師あり学習 vs 教師なし学習
機械学習は 「教師あり学習」 と 「教師なし学習」 に大きく分けられます。
✅ 教師あり学習(Supervised Learning)
📌 「正解データ(ラベル)」があるデータで学習する手法
例 | 説明 |
---|---|
メールのスパム分類 | 「スパム」「スパムでない」のラベル付きデータで学習 |
売上予測 | 過去のデータ(気温・広告費・売上)から未来の売上を予測 |
画像認識(犬 or 猫) | 「犬」or「猫」のラベル付き画像データで学習 |
➡ 教師あり学習では、入力と正解データを使って学習する!
✅ 教師なし学習(Unsupervised Learning)
📌 「正解データ(ラベル)」がないデータからパターンを見つける手法
例 | 説明 |
---|---|
顧客のグルーピング | 購買履歴をもとに似たユーザーを分類(クラスタリング) |
異常検知 | クレジットカードの不正利用を発見 |
次元削減 | 画像の特徴を少ない要素に圧縮(PCA) |
➡ 教師なし学習では、データの構造を自動的に学習する!
📌 3. 代表的なアルゴリズム
それぞれの学習方法における 代表的なアルゴリズム を紹介します!
学習方法 | タスク | 代表的な手法 |
---|---|---|
教師あり学習 | 分類(Classification) | ロジスティック回帰, ランダムフォレスト, XGBoost, CNN |
教師あり学習 | 回帰(Regression) | 線形回帰, ランダムフォレスト回帰, LSTM |
教師なし学習 | クラスタリング(Clustering) | K-means, DBSCAN, 階層クラスタリング |
教師なし学習 | 次元削減(Dimensionality Reduction) | PCA, t-SNE |
➡ 問題に応じて適切なアルゴリズムを選ぶことが重要!
📌 4. Pythonで簡単に試してみよう!
✅ 教師あり学習(分類)
scikit-learn を使って スパムメール分類 の簡単な例を実装してみます!
from sklearn.model_selection import train_test_split from sklearn.ensemble import RandomForestClassifier from sklearn.datasets import load_digits from sklearn.metrics import accuracy_score # 手書き数字データ(MNIST)をロード digits = load_digits() X, y = digits.data, digits.target # データを学習用・テスト用に分割 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # ランダムフォレストで学習 model = RandomForestClassifier(n_estimators=100, random_state=42) model.fit(X_train, y_train) # 予測 y_pred = model.predict(X_test) # 精度を表示 print(f"Accuracy: {accuracy_score(y_test, y_pred):.2f}")
✅ 手書き数字(0〜9)を分類する簡単な機械学習モデル!
✅ 教師あり学習(分類問題)の実装例!
✅ 教師なし学習(クラスタリング)
今度は、教師なし学習(K-meansクラスタリング)を試してみましょう!
from sklearn.cluster import KMeans import matplotlib.pyplot as plt import japanize_matplotlib # 日本語対応 # データの準備(digits.data が定義されていることを前提) X = digits.data # K-means クラスタリング(🔹 n_init を指定) kmeans = KMeans(n_clusters=10, n_init=10, random_state=42) clusters = kmeans.fit_predict(X) # 結果の可視化 plt.scatter(X[:, 0], X[:, 1], c=clusters, cmap="viridis", alpha=0.5) plt.title("K-means クラスタリング結果") plt.show()
✅ 教師なし学習の代表的な手法「K-meansクラスタリング」!
✅ 似たデータを自動的に分類する!
📌 5. 機械学習の選び方(分類 vs 回帰 vs クラスタリング)
どの機械学習を使うべきか迷ったときは、以下の表を参考にしてください!
問題の種類 | 例 | 推奨手法 |
---|---|---|
分類(Yes/No, カテゴリ) | スパムメール判定, 犬 or 猫判別 | ロジスティック回帰, RandomForest, CNN |
回帰(数値予測) | 売上予測, 住宅価格予測 | 線形回帰, ランダムフォレスト回帰 |
クラスタリング(グルーピング) | 顧客セグメント分析 | K-means, DBSCAN |
✅ タスクに応じて適切なアルゴリズムを選ぶ!
🎯 まとめ
✅ 機械学習は「教師あり学習」と「教師なし学習」に分かれる!
✅ 分類・回帰・クラスタリングなど、目的に応じた手法を選ぶ!
✅ Pythonを使って簡単に実装できる!
Best regards, (^^ゞ