分析建模,日常问题整理(十三)
2018.10.22~2018.10.28
- df.loc 条件赋值
tem.loc[tem['A'] == 3, 'B'] = 1
tem.loc[tem['C'] == 2, 'B'] = 2
# 新建列B,将列A等于3对应的行填充为1
- np.concatenate
数组拼接,传入的数组必须具有相同的形状,这里的相同的形状可以满足在拼接方向axis轴上数组间的形状一致。
np.concatenate((np.array([[1, 2], [3, 4]]),np.array([[4,21]])),axis =0)
- python中的可视化模块
echarts
sns
sns.facetgrid/sns.pairplot
matplot
plotly
echarts和plotly都是交互式制图的神器,echarts简单容易理解,plotly也有很多丰富的功能。
一下介绍制作散点图和热图的两个示例。主要需要设定trace参数,trace里面指定数据和标签。通过py.iplot输出结果。
import plotly.offline as py
py.init_notebook_mode(connected=True)
import plotly.graph_objs as go
import plotly.tools as tls
# Scatter plot
trace = go.Scatter(
y = importances_xgb[0].values,
x = importances_xgb.index.values,
mode='markers',
marker=dict(
sizemode = 'diameter',
sizeref = 1,
size = 25,
color = importances_xgb[0].values,
colorscale='Portland',
showscale=True
),
text = importances_xgb.index.values
)
data = [trace]
layout= go.Layout(
autosize= True,
title= 'Random Forest Feature Importance',
hovermode= 'closest',
yaxis=dict(
title= 'Feature Importance',
ticklen= 5,
gridwidth= 2 ),
showlegend= False
)
fig = go.Figure(data=data, layout=layout)
py.iplot(fig,filename='scatter2010')
%matplotlib inline
import plotly.offline as py
py.init_notebook_mode(connected=True)
import plotly.graph_objs as go
import plotly.tools as tls
data = [
go.Heatmap(
z = SCORE_TR[SCORE_TR['is_null']=='not_null'][['SCORE_LGB','SCORE_GBM','SCORE_XGB','SCORE_SKLOGIT']].corr().values ,
x = ['SCORE_LGB','SCORE_GBM','SCORE_XGB','SCORE_SKLOGIT'],
y = ['SCORE_LGB','SCORE_GBM','SCORE_XGB','SCORE_SKLOGIT'],
colorscale='Viridis',
showscale=True,
reversescale = True
)
]
py.iplot(data, filename='labelled-heatmap')
这个等同于sns.headmap(),但是plotly是交互式的。
更多方法和功能,见plotly官网
-
4 建立模型的时候就要将最终模型分箱cut,各类别的比重记录下来。计算PSI值需要原始各分类的比重,当前各分类的比重。因此方便后期监控的时候计算PSI值。
-
5 assert 函数用法
assert语句失败的时候,会引发一AssertionError
assert a==b,'不等于b'
等价于if a!=b:raise AssertionError
在你非常确信某个条件是必要发生的,可用于程序中止的语句。
网友评论