Эта статья является своего рода продолжением моей первой статьи Загрузка модели ANN (искусственной нейронной сети) в PowerBI для прогнозирования, если вы не читали эту статью, перейдите через это.
Моя предыдущая статья была о том, как использовать модели Deep Learning (искусственная нейронная сеть) в PowerBi для прогнозирования.
Теперь давайте посмотрим, как использовать модели машинного обучения в PowerBi для прогнозирования.
Необходимое условие
- PowerBi Desktop
- Анаконда
- Питон
- Sklearn
Возьмем классический пример классификации с набором данных Iris.
импортировать numpy как np
импортировать pandas как pd
импортировать matplotlib.pyplot как plt
импортировать seaborn как sns
cols = ['SepalLength','SepalWidth','PetalLength ','PetalWidth','Class']
data = pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data', имена = столбцы)
data.head()
x = data.drop('Class', axis =1 )
y = data['Class']
from sklearn.model_selection import train_test_split
x_train, x_test , y_train, y_test = train_test_split(x,y,test_size=0.2)
from sklearn.svm import SVC
svn = SVC()
svn.fit(x_train, y_train)
прогнозы = svn.predict (x_test)
из sklearn.metrics импорта classification_report
print (classification_report (y_test, прогнозы))
Теперь, сохраняя модель машинного обучения, мы должны помнить одну вещь
PowerBi не принимает файлы pickle, поэтому сохраните модель машинного обучения как joblib
Теперь приступим к действию в PowerBi. В PowerBi я загружаю тот же набор данных Iris для прогнозирования. Вы можете сохранить кадр данных Iris в python в виде файла csv со следующим кодом.
data.drop("Класс",axis = 1, inplace=True)
data.to_csv("Iris.csv",header=True)
Откройте PowerBi и загрузите свой набор данных. Затем нажмите на данные преобразования
Вы перейдете в редактор Power Query и в редакторе Power Query нажмите Run Python Script
Вам будет предложено написать код для загрузки модели sklearn (ML), которую вы сохранили.
NB: Замените путь к модели в соответствии с путем, по которому вы сохранили свою модель.
# 'dataset' содержит входные данные для этого скрипта
import pandas
import joblib
# конвейер загрузки модели
model = joblib.load(r”C:\Users \Athul.Pannikkode\Downloads\irismodel.joblib")
dataset['prediction'] = model.predict(dataset[['SepalLength', 'SepalWidth', 'PetalLength',
'PetalWidth'] ])
После того, как вы написали свой код, нажмите «ОК», и после выполнения кода вы получите результат, аналогичный изображенному ниже.
Теперь нажмите на значок расширения.
Теперь нажмите ОК
Это даст вам результат, как на картинке ниже
Теперь просто нажмите кнопку «Закрыть и применить» вверху.
Подпишитесь на меня в LinkedIN
http://linkedin.com/in/pjathul
Подпишитесь на меня в Instagram
instagram.com/ai.pja