はじめに

この実験では、未来の水中都市に移動し、深海の宝探しの役割を担います。あなたのミッションは、Python の機械学習スキルを使って水中データを分析し、隠された宝を見つけ出すことです。この水中都市には、謎めいた遺物や見つけられる価値のある宝がいっぱいです。あなたの目標は、Python の機械学習知識を使って、深海の秘密を明かすことです。

データ前処理と探索

このステップでは、さまざまなセンサーから収集された水中データを読み込み、前処理を行います。Python の pandas と numpy ライブラリを使って、データセットを探索し、水中環境の洞察を得て、パターンを特定します。

~/project/data_preprocessing.py 内:

## data_preprocessing.py

import pandas as pd
import numpy as np

## 水中データセットを pandas の DataFrame に読み込む
underwater_data = pd.read_csv('/home/labex/project/underwater_data.csv')

## データ前処理と探索を行う
print(underwater_data)

スクリプトを実行する:

python data_preprocessing.py

端末に以下の情報が表示されるはずです:

   sensor1  sensor2  sensor3  sensor4
0      1.2      3.4      5.6      2.1
1      2.3      4.5      6.7      3.2
2      3.4      5.6      7.8      4.3

モデルのトレーニングと評価

このステップでは、前処理済みのデータを基に、潜在的な水中の宝の位置を予測するための機械学習モデルを構築するために、Python の scikit - learn ライブラリを利用します。決定木、ランダムフォレスト、サポートベクターマシンなど、様々な機械学習アルゴリズムの性能をトレーニングして評価します。

~/project/model_training.py 内:

## model_training.py

import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_squared_error

## "underwater_data.csv" ファイルからデータを読み込む
data = pd.read_csv("/home/labex/project/underwater_data.csv")

## データを NumPy 配列に変換する
data = np.array(data)

## 特徴量行列 X と目的変数 y を抽出する
X = data[:, :-1]  ## 最後の列を除くすべての行を特徴量行列 X として使用する
y = data[:, -1]   ## 最後の列を目的変数 y として使用する

## 前処理済みのデータを学習用とテスト用に分割する
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

## ランダムフォレスト回帰器を初期化してトレーニングする
model = RandomForestRegressor(n_estimators=100, random_state=42)
model.fit(X_train, y_train)

## モデルの性能を評価する
predictions = model.predict(X_test)
mse = mean_squared_error(y_test, predictions)
print(f"平均二乗誤差:{mse}")

スクリプトを実行する:

python model_training.py

端末に以下の情報が表示されるはずです:

平均二乗誤差: 1.8009639999999907

まとめ

この実験では、未来の水中都市で Python の機械学習技術を応用するための、有望な宝探しにとっての実践的な体験をデザインしました。水中データの前処理と探索、および機械学習モデルのトレーニングにより、隠された宝を明かし、機械学習の現実世界シナリオへの応用に関する貴重な洞察を得ることができます。