Power BI强强联合Python 机器学习能力做What if分析
传统BI报表分析通常建立在既成事实的业务数据上,我们如何结合Python的机器学习预测能力在Power BI中做what if 分析,本篇以预测公司员工离职率为例说明Power BI如何结合Python机器学习做what if分析。分析训练数据来源于kaggle Attrition数据源,该数据源包含两个csv文件,train.csv用来训练预测员工离职率的机器学习模型,test.csv则是我们本次预测分析的对象。
员工离职率what if 分析
1.在Power BI中导入test.csv数据源。该数据源大致长什么样大家可看下图,train.csv和test.csv包含的员工信息相同,即依靠员工的年龄,性别,教育程度,家离公司的距离,是否经常出差,是否经常加班,职位,月薪,婚否等等信息来预测员工离职的概率。
2.在Power BI中创建用于what if分析的参数,简便起见这里只创建两个what if分析参数,即员工是否经常加班参数和员工薪资调节参数,
把参数作为切片器放到报表界面上,方便报表用户调节参数值做what if分析。
3. 对应新建的两个参数分别新建两个度量值,根据用户在界面上修改overtime参数和salary调节比例参数这两个度量值分别返回员工是否经常加班以及根据参数调整后的员工月薪。
这里有个小坑就是overtime由于不是数值,一开始这里本打算新建列而不是新建度量值,结果overtime参数在新建列中不起作用,即调节参数不会影响到overtime列的返回值,所以后面只能新建为度量。
4.往Power BI报表界面上添加Py视觉对象。
由于各自程序上下文环境不同,大致调用的Python代码看下面,还请各位根据自己环境做相应调整。
# 在此处粘贴或键入脚本代码:
import numpy as np
import pandas as pd
from sklearn.preprocessing import LabelEncoder
import matplotlib.pyplot as plt
import pickle
import seaborn as sns
# 数据加载
#dataset即为Power BI传递给Python代码的数据对象,数据会根据what if分析参数变化而变化
test_data = dataset
#特征选择
features=['Age','BusinessTravel','DailyRate','Department','DistanceFromHome','Education','EducationField','EmployeeNumber','EnvironmentSatisfaction','Gender','HourlyRate',