So erhalten Sie Erklärungen für Feature-Attribution für die zweiklasse logistische Regression, die vom Azure ML DesignerPython

Python-Programme
Anonymous
 So erhalten Sie Erklärungen für Feature-Attribution für die zweiklasse logistische Regression, die vom Azure ML Designer

Post by Anonymous »

Hallo alle,
Ich arbeite an einer Lead -Scoring -Aufgabe in Azure Machine Learning Studio und brauche Hilfe bei der Integration von Modellinterpretierbarkeit in meine bereitgestellte Lösung. Die folgenden Details finden Sie unter: < /p>

Hintergrund < /strong> < /h3>

[*] Objektiv < /strong>:

trainieren ein Modell für historische Leads-Daten, Drediction-Out-CHEIS (-Won- /Verlust). Erklären Sie, warum ein Vorsprung als gewonnen oder verloren eingestuft wird, wodurch die einflussreichsten Attribute hervorgehoben werden. />Workflow[/b]:

Imported data and trained a model using the following Designer components:

Two-class logistic regression
[*]Train Model
[*]Score Model
[*]Evaluate Modell < /li>
< /ul>
< /li>
Das Modell wurde erfolgreich als Webdienst bereitgestellt; Ich kann die API aufrufen und Vorhersagen für neue Leaddaten abrufen. API. Fehler: < /p>

Code: Select all

NotADirectoryError: [Errno 20] Not a directory: 'model.pkl/model.pkl'
Ansatz 2 :

Versuchte das Programm für geschulte Modells mit lokalen Daten und Ausführen des Erklärung, jedoch auf einen weiteren Fehler in der Registrierung/Erläuterung (Details und Code -Schnipsel). /> < /ul>

Code: Select all

    explainer = TabularExplainer(
model=clf,
initialization_examples=new_lead,
features=new_lead.columns.tolist(),
classes=[0, 1]
)

print('Done')

# The Below code is not returning the explanation. No error as well.
explanation = explainer.explain_local(new_lead)

< /code>

 [b] Fragen < /strong> < /h3>

  Wie kann ich Erklärungen erstellen, warum ein Blei mit dem ausgebildeten Modell in Azure ML Designer eingestuft wird. Pipeline-Modell und Erläuterungen über die REST-API? Mit Designer-ausgebildeten, bereitgestellten Modellen (einschließlich des korrekten Ladens des Modells und der Ausführung von Form oder ähnlichen Erklärern)? />   Code-Snippet, um Erläuterungen zu erhalten, die an lokalen Daten arbeiten < /strong> < /h3>
import pandas as pd
import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
import joblib

# Step 1: Generate dummy lead scoring dataset
df = pd.DataFrame({
"company_size": np.random.randint(10, 500, 100),
"annual_revenue": np.random.randint(100000, 10000000, 100),
"engagement_score": np.random.randint(0, 100, 100),
"last_contact_days_ago": np.random.randint(1, 60, 100),
"qualified": np.random.choice([0, 1], 100)
})

X = df.drop(columns=["qualified"])
y = df["qualified"]

# Step 2: Train model with pipeline
pipeline = Pipeline([
("scaler", StandardScaler()),
("clf", LogisticRegression())
])

pipeline.fit(X, y)

# Step 3: Save the model
joblib.dump(pipeline, "model.pkl")
print('Done')

# Step 4: Register model in Azure ML
from azureml.core import Workspace, Model

# Load workspace from config
ws = Workspace.from_config()

# Step 5: Load model back from registry
import os
model = Model(ws, name="lead-logreg-vai1")
model_dir = model.download(exist_ok=True)
print("model_dir:", model_dir)

clf = joblib.load(model_dir)
print("Loaded model type:", type(clf))

# Step 6: Make prediction and interpret with TabularExplainer
from interpret.ext.blackbox import TabularExplainer

# New lead sample
new_lead = pd.DataFrame([{
"company_size": 10,
"annual_revenue": 20000,
"engagement_score": 100,
"last_contact_days_ago": 100
}])

# Predict probability and class
proba = clf.predict_proba(new_lead)
pred = clf.predict(new_lead)
print(f"Predicted probability: {proba[0][1]:.2f}, Class: {pred[0]}")

explainer = TabularExplainer(
model=clf,
initialization_examples=new_lead,
features=new_lead.columns.tolist(),
classes=[0, 1]
)

print('Done')

# The below code is not returning the explanation.  No error as well.
explanation = explainer.explain_local(new_lead)
< /code>

 Über mich < /h3>
Ich bin relativ neu im maschinellen Lernen von Azure, insbesondere wenn es um Interpretierbarkeit und Bereitstellungsaspekte geht. Designer [/b]:

 Eine Möglichkeit, [b] Erklärungen pro Vorhersage zu erhalten [/b] für Leads über [b] API oder Notebook [/b]. Dokumentation, Tutorials oder Beispielnotizen wären sehr geschätzt! < /p>
Vielen Dank im Voraus für Ihre Unterstützung! Dieser Entwurf ist bereit für die Veröffentlichung von Microsoft Q & A, Stack Overflow (mit dem [Azure-Machine-Learning] 
Tag) oder der Microsoft Tech-Community, wie zuvor beraten>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post