こちらの派生。
機械学習モデルの構築ではどこまでいけるのでしょうか。
ワイン品質予測モデルの構築
/databricks-datasets/wine-quality/winequality-red.csv
に格納されているワインデータを使います。
/databricks-datasets/wine-quality/winequality-red.csvのファイルを用いて、qualityを予測するモデルを構築するPythonコードを書いてください。
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
# データの読み込み
data = pd.read_csv("/databricks-datasets/wine-quality/winequality-red.csv")
# 特徴量とターゲット変数の分離
X = data.drop("quality", axis=1)
y = data["quality"]
# 訓練データとテストデータの分割
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
# 特徴量の標準化
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
# ロジスティック回帰による分類モデルのトレーニング
classifier = LogisticRegression(random_state=0)
classifier.fit(X_train, y_train)
# テストデータによる予測の実行
y_pred = classifier.predict(X_test)
診断エラーもイマイチ。ただ、メッセージによれば予測すべきquality
列が見つからないとのこと。
プロンプトを改善。
/databricks-datasets/wine-quality/winequality-red.csvのファイルを用いて、qualityを予測するモデルを構築するPythonコードを書いてください。winequality-red.csvの区切り文字は;です。
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
# データの読み込み
data = pd.read_csv("/databricks-datasets/wine-quality/winequality-red.csv", delimiter=";")
# 特徴量とターゲット変数の分離
X = data.drop("quality", axis=1)
y = data["quality"]
# 訓練データとテストデータの分割
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
# 特徴量の標準化
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
# ロジスティック回帰による分類モデルのトレーニング
classifier = LogisticRegression(random_state=0)
classifier.fit(X_train, y_train)
# テストデータによる予測の実行
y_pred = classifier.predict(X_test)
今度は行けました。MLflowにもモデルが記録されています。
今日の学び
- 使用するデータ構造の理解は大事
でも、これでも行けてしまいました。
/databricks-datasets/wine-quality/winequality-red.csvのファイルを用いて、qualityを予測するモデルを構築するPythonコードを書いてください。事前にファイルの区切り文字を判別してください。
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
# データを読み込む
df = pd.read_csv('/databricks-datasets/wine-quality/winequality-red.csv', delimiter=';')
# 特徴量とターゲット変数を選択する
X = df.drop('quality', axis=1)
y = df['quality']
# データを訓練用とテスト用に分割する
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# モデルを構築して訓練する
model = LinearRegression()
model.fit(X_train, y_train)
# テストデータで予測する
y_pred = model.predict(X_test)
# モデルの性能を評価する
score = model.score(X_test, y_test)
print("R^2スコア:", score)
- 試行錯誤も大事