ML之RF:基于葡萄牙银行机构营销活动数据集(年龄/职业/婚姻/违约等)利用Pipeline框架(两种类型特征并行处理)+RF模型预测(调参+交叉验证评估+模型推理)客户是否购买该银行的产品二分类案例

目录

基于葡萄牙银行机构营销活动数据集(年龄/职业/婚姻/违约等)利用Pipeline框架(两种类型特征并行处理)+RF模型预测(调参+交叉验证评估+模型推理)客户是否购买该银行的产品二分类案例

数据说明

查看数据分布

# 1、定义数据集

# 1.1、提取有意义的字段(比如去掉ID)

# 1.2、特征类型划分

# 2、数据预处理/特征工程

# 2.1、分析目标变量

# 2.1.1、目标变量占比

# 2.1.2、计算训练集特征与lable之间的相关系数

# 2.2、分析类别型字段:依次查看训练集、测试集中,类别型字段的细分类

# 3、模型训练与评估

# 3.1、构建Pipeline流水线

# 3.2、模型训练与评估:采用RFC算法

# 3.4、模型推理:基于模型最佳参数


相关文章
ML之RF:基于葡萄牙银行机构营销活动数据集(年龄/职业/婚姻/违约等)利用Pipeline框架(两种类型特征并行处理)+RF模型预测(调参+交叉验证评估+模型推理)客户是否购买该银行的产品二分类案例
ML之RF:基于葡萄牙银行机构营销活动数据集(年龄/职业/婚姻/违约等)利用Pipeline框架(两种类型特征并行处理)+RF模型预测(调参+交叉验证评估+模型推理)客户是否购买该银行的产品二分类案例

基于葡萄牙银行机构营销活动数据集(年龄/职业/婚姻/违约等)利用Pipeline框架(两种类型特征并行处理)+RF模型预测(调参+交叉验证评估+模型推理)客户是否购买该银行的产品二分类案例

数据说明

该数据集是葡萄牙银行机构进行营销活动所得。这些营销活动一般以电话为基础,银行的客服人员至少联系客户一次,以确认客户是否有意愿购买该银行的产品(定期存款)。目标是预测客户是否购买该银行的产品。
数据集地址:和鲸社区 - Heywhale.com

NO 字段名称 数据类型 字段描述
1 ID Int 客户唯一标识
2 age Int 客户年龄
3 job String 客户的职业
4 marital String 婚姻状况
5 education String 受教育水平
6 default String 是否有违约记录
7 balance Int 每年账户的平均余额
8 housing String 是否有住房贷款
9 loan String 是否有个人贷款
10 contact String 与客户联系的沟通方式
11 day Int 最后一次联系的时间(几号)
12 month String 最后一次联系的时间(月份)
13 duration Int 最后一次联系的交流时长
14 campaign Int 在本次活动中,与该客户交流过的次数
15 pdays Int 距离上次活动最后一次联系该客户,过去了多久(999表示没有联系过)
16 previous Int 在本次活动之前,与该客户交流过的次数
17 poutcome String 上一次活动的结果
18 y Int 预测客户是否会订购定期存款业务

数据参考:Citation: [Moro et al., 2014] S. Moro, P. Cortez and P. Rita. A Data-Driven Approach to Predict the Success of Bank Telemarketing. Decision Support Systems, Elsevier, 62:22-31, June 2014

查看数据分布

# 1、定义数据集

ID age job marital education default balance housing loan contact day month duration campaign pdays previous poutcome y
1 43 management married tertiary no 291 yes no unknown 9 may 150 2 -1 0 unknown 0
2 42 technician divorced primary no 5076 yes no cellular 7 apr 99 1 251 2 other 0
3 47 admin. married secondary no 104 yes yes cellular 14 jul 77 2 -1 0 unknown 0
4 28 management single secondary no -994 yes yes cellular 18 jul 174 2 -1 0 unknown 0
5 42 technician divorced secondary no 2974 yes no unknown 21 may 187 5 -1 0 unknown 0
6 56 services divorced secondary no 450 no no unknown 9 jun 47 1 -1 0 unknown 0
7 32 management single tertiary no 1716 no no cellular 21 nov 157 4 -1 0 unknown 0
8 33 management single tertiary no -359 no no telephone 29 aug 59 2 -1 0 unknown 0
9 32 technician single secondary no 309 yes yes cellular 25 aug 99 3 -1 0 unknown 0
10 55 management married tertiary no 4777 no yes unknown 20 jun 12 3 -1 0 unknown 0

# 1.1、提取有意义的字段(比如去掉ID)

RangeIndex: 25317 entries, 0 to 25316
Data columns (total 18 columns):#   Column     Non-Null Count  Dtype
---  ------     --------------  ----- 0   ID         25317 non-null  int64 1   age        25317 non-null  int64 2   job        25317 non-null  object3   marital    25317 non-null  object4   education  25317 non-null  object5   default    25317 non-null  object6   balance    25317 non-null  int64 7   housing    25317 non-null  object8   loan       25317 non-null  object9   contact    25317 non-null  object10  day        25317 non-null  int64 11  month      25317 non-null  object12  duration   25317 non-null  int64 13  campaign   25317 non-null  int64 14  pdays      25317 non-null  int64 15  previous   25317 non-null  int64 16  poutcome   25317 non-null  object17  y          25317 non-null  int64
dtypes: int64(9), object(9)
memory usage: 3.5+ MB
None

# 1.2、特征类型划分

返回数值型字段 7 ['age', 'balance', 'day', 'duration', 'campaign', 'pdays', 'previous']
返回类别型字段 9 ['job', 'marital', 'education', 'default', 'housing', 'loan', 'contact', 'month', 'poutcome']
返回非数值型和类别型字段  0 []

# 2、数据预处理/特征工程

# 2.1、分析目标变量

# 2.1.1、目标变量占比

训练集 y标签的比例: 0.11695698542481336

# 2.1.2、计算训练集特征与lable之间的相关系数

训练集计算相关系数: y           1.000000
duration    0.394746
pdays       0.107565
previous    0.088337
campaign    0.075173
balance     0.057564
day         0.031886
age         0.029916
Name: y, dtype: float64

# 2.2、分析类别型字段:依次查看训练集、测试集中,类别型字段的细分类

job ['management' 'technician' 'admin.' 'services' 'retired' 'student''blue-collar' 'unknown' 'entrepreneur' 'housemaid' 'self-employed''unemployed']
marital ['married' 'divorced' 'single']
education ['tertiary' 'primary' 'secondary' 'unknown']
default ['no' 'yes']
housing ['yes' 'no']
loan ['no' 'yes']
contact ['unknown' 'cellular' 'telephone']
month ['may' 'apr' 'jul' 'jun' 'nov' 'aug' 'jan' 'feb' 'dec' 'oct' 'sep' 'mar']
poutcome ['unknown' 'other' 'failure' 'success']
job ['housemaid' 'management' 'retired' 'student' 'technician' 'services''admin.' 'blue-collar' 'unemployed' 'self-employed' 'entrepreneur''unknown']
marital ['married' 'single' 'divorced']
education ['unknown' 'tertiary' 'primary' 'secondary']
default ['no' 'yes']
housing ['no' 'yes']
loan ['no' 'yes']
contact ['telephone' 'cellular' 'unknown']
month ['jul' 'nov' 'jun' 'may' 'aug' 'apr' 'feb' 'mar' 'oct' 'jan' 'dec' 'sep']
poutcome ['unknown' 'failure' 'other' 'success']

# 3、模型训练与评估

# 3.1、构建Pipeline流水线

df_train_X_after_pipeline 0         1         2         3   ...   47   48   49   50
0      0.194151 -0.355546 -0.821617 -0.419241  ...  0.0  0.0  0.0  1.0
1      0.100114  1.239579 -1.062021 -0.617708  ...  0.0  1.0  0.0  0.0
2      0.570301 -0.417885 -0.220606 -0.703321  ...  0.0  0.0  0.0  1.0
3     -1.216408 -0.783913  0.260203 -0.325845  ...  0.0  0.0  0.0  1.0
4      0.100114  0.538857  0.620810 -0.275255  ...  0.0  0.0  0.0  1.0
...         ...       ...       ...       ...  ...  ...  ...  ...  ...
25312  1.322599  2.274328 -0.220606  2.320378  ...  1.0  0.0  0.0  0.0
25313  1.040487 -0.132195  0.260203 -0.139053  ...  1.0  0.0  0.0  0.0
25314 -0.558147 -0.352546 -0.340808  2.674504  ...  0.0  0.0  0.0  1.0
25315 -0.370072 -0.430552  0.260203  3.526744  ...  0.0  0.0  0.0  1.0
25316  1.040487 -0.439220  0.380405  3.919786  ...  0.0  0.0  0.0  1.0[25317 rows x 51 columns]

# 3.2、模型训练与评估:采用RFC算法

Fitting 3 folds for each of 35 candidates, totalling 105 fits
[CV] END forst_reg__max_features=5, forst_reg__n_estimators=50; total time=   1.0s
[CV] END forst_reg__max_features=5, forst_reg__n_estimators=50; total time=   1.0s
[CV] END forst_reg__max_features=5, forst_reg__n_estimators=50; total time=   1.0s
[CV] END forst_reg__max_features=5, forst_reg__n_estimators=100; total time=   1.9s
[CV] END forst_reg__max_features=5, forst_reg__n_estimators=100; total time=   1.9s
[CV] END forst_reg__max_features=5, forst_reg__n_estimators=100; total time=   1.9s
[CV] END forst_reg__max_features=5, forst_reg__n_estimators=150; total time=   2.9s
[CV] END forst_reg__max_features=5, forst_reg__n_estimators=150; total time=   2.9s
[CV] END forst_reg__max_features=5, forst_reg__n_estimators=150; total time=   2.9s
[CV] END forst_reg__max_features=5, forst_reg__n_estimators=200; total time=   3.9s
[CV] END forst_reg__max_features=5, forst_reg__n_estimators=200; total time=   3.9s
[CV] END forst_reg__max_features=5, forst_reg__n_estimators=200; total time=   4.0s
[CV] END forst_reg__max_features=5, forst_reg__n_estimators=250; total time=   4.9s
[CV] END forst_reg__max_features=5, forst_reg__n_estimators=250; total time=   4.9s
[CV] END forst_reg__max_features=5, forst_reg__n_estimators=250; total time=   5.0s
[CV] END forst_reg__max_features=5, forst_reg__n_estimators=300; total time=   5.9s
[CV] END forst_reg__max_features=15, forst_reg__n_estimators=50; total time=   1.8s
[CV] END forst_reg__max_features=5, forst_reg__n_estimators=300; total time=   5.8s
[CV] END forst_reg__max_features=15, forst_reg__n_estimators=50; total time=   1.9s
[CV] END forst_reg__max_features=5, forst_reg__n_estimators=300; total time=   5.8s
[CV] END forst_reg__max_features=15, forst_reg__n_estimators=50; total time=   1.9s
[CV] END forst_reg__max_features=5, forst_reg__n_estimators=350; total time=   7.4s
[CV] END forst_reg__max_features=5, forst_reg__n_estimators=350; total time=   7.5s
[CV] END forst_reg__max_features=15, forst_reg__n_estimators=100; total time=   4.5s
[CV] END forst_reg__max_features=15, forst_reg__n_estimators=100; total time=   4.9s
[CV] END forst_reg__max_features=5, forst_reg__n_estimators=350; total time=   7.8s
[CV] END forst_reg__max_features=15, forst_reg__n_estimators=100; total time=   5.0s
[CV] END forst_reg__max_features=15, forst_reg__n_estimators=150; total time=   7.6s
[CV] END forst_reg__max_features=15, forst_reg__n_estimators=150; total time=   7.8s
[CV] END forst_reg__max_features=15, forst_reg__n_estimators=150; total time=   7.9s
[CV] END forst_reg__max_features=15, forst_reg__n_estimators=200; total time=   9.9s
[CV] END forst_reg__max_features=15, forst_reg__n_estimators=200; total time=  10.0s
[CV] END forst_reg__max_features=15, forst_reg__n_estimators=200; total time=  10.0s
[CV] END forst_reg__max_features=15, forst_reg__n_estimators=250; total time=  12.2s
[CV] END forst_reg__max_features=15, forst_reg__n_estimators=250; total time=  12.1s
[CV] END forst_reg__max_features=25, forst_reg__n_estimators=50; total time=   3.9s
[CV] END forst_reg__max_features=15, forst_reg__n_estimators=250; total time=  12.6s
[CV] END forst_reg__max_features=15, forst_reg__n_estimators=300; total time=  15.1s
[CV] END forst_reg__max_features=15, forst_reg__n_estimators=300; total time=  14.8s
[CV] END forst_reg__max_features=25, forst_reg__n_estimators=50; total time=   3.9s
[CV] END forst_reg__max_features=25, forst_reg__n_estimators=50; total time=   4.0s
[CV] END forst_reg__max_features=15, forst_reg__n_estimators=300; total time=  14.8s
[CV] END forst_reg__max_features=15, forst_reg__n_estimators=350; total time=  17.6s
[CV] END forst_reg__max_features=25, forst_reg__n_estimators=100; total time=   7.6s
[CV] END forst_reg__max_features=15, forst_reg__n_estimators=350; total time=  17.0s
[CV] END forst_reg__max_features=25, forst_reg__n_estimators=100; total time=   7.6s
[CV] END forst_reg__max_features=25, forst_reg__n_estimators=100; total time=   7.9s
[CV] END forst_reg__max_features=15, forst_reg__n_estimators=350; total time=  17.4s
[CV] END forst_reg__max_features=25, forst_reg__n_estimators=150; total time=  11.9s
[CV] END forst_reg__max_features=25, forst_reg__n_estimators=150; total time=  12.3s
[CV] END forst_reg__max_features=25, forst_reg__n_estimators=150; total time=  12.0s
[CV] END forst_reg__max_features=25, forst_reg__n_estimators=200; total time=  16.1s
[CV] END forst_reg__max_features=25, forst_reg__n_estimators=200; total time=  15.9s
[CV] END forst_reg__max_features=25, forst_reg__n_estimators=200; total time=  17.0s
[CV] END forst_reg__max_features=25, forst_reg__n_estimators=250; total time=  20.4s
[CV] END forst_reg__max_features=25, forst_reg__n_estimators=250; total time=  20.4s
[CV] END forst_reg__max_features=25, forst_reg__n_estimators=250; total time=  20.3s
[CV] END forst_reg__max_features=35, forst_reg__n_estimators=50; total time=   5.2s
[CV] END forst_reg__max_features=35, forst_reg__n_estimators=50; total time=   5.5s
[CV] END forst_reg__max_features=25, forst_reg__n_estimators=300; total time=  24.1s
[CV] END forst_reg__max_features=35, forst_reg__n_estimators=50; total time=   5.5s
[CV] END forst_reg__max_features=25, forst_reg__n_estimators=300; total time=  23.9s
[CV] END forst_reg__max_features=25, forst_reg__n_estimators=300; total time=  23.8s
[CV] END forst_reg__max_features=35, forst_reg__n_estimators=100; total time=  11.2s
[CV] END forst_reg__max_features=35, forst_reg__n_estimators=100; total time=  10.4s
[CV] END forst_reg__max_features=25, forst_reg__n_estimators=350; total time=  27.3s
[CV] END forst_reg__max_features=35, forst_reg__n_estimators=100; total time=  10.8s
[CV] END forst_reg__max_features=25, forst_reg__n_estimators=350; total time=  27.0s
[CV] END forst_reg__max_features=25, forst_reg__n_estimators=350; total time=  27.4s
[CV] END forst_reg__max_features=35, forst_reg__n_estimators=150; total time=  16.3s
[CV] END forst_reg__max_features=35, forst_reg__n_estimators=150; total time=  16.3s
[CV] END forst_reg__max_features=35, forst_reg__n_estimators=150; total time=  16.9s
[CV] END forst_reg__max_features=35, forst_reg__n_estimators=200; total time=  21.9s
[CV] END forst_reg__max_features=35, forst_reg__n_estimators=200; total time=  22.4s
[CV] END forst_reg__max_features=35, forst_reg__n_estimators=200; total time=  22.7s
[CV] END forst_reg__max_features=35, forst_reg__n_estimators=250; total time=  28.6s
[CV] END forst_reg__max_features=35, forst_reg__n_estimators=250; total time=  27.6s
[CV] END forst_reg__max_features=55, forst_reg__n_estimators=50; total time=   0.0s
[CV] END forst_reg__max_features=55, forst_reg__n_estimators=50; total time=   0.0s
[CV] END forst_reg__max_features=55, forst_reg__n_estimators=50; total time=   0.0s
[CV] END forst_reg__max_features=55, forst_reg__n_estimators=100; total time=   0.0s
[CV] END forst_reg__max_features=55, forst_reg__n_estimators=100; total time=   0.0s
[CV] END forst_reg__max_features=55, forst_reg__n_estimators=100; total time=   0.0s
[CV] END forst_reg__max_features=55, forst_reg__n_estimators=150; total time=   0.1s
[CV] END forst_reg__max_features=55, forst_reg__n_estimators=150; total time=   0.1s
[CV] END forst_reg__max_features=55, forst_reg__n_estimators=150; total time=   0.1s
[CV] END forst_reg__max_features=55, forst_reg__n_estimators=200; total time=   0.1s
[CV] END forst_reg__max_features=55, forst_reg__n_estimators=200; total time=   0.1s
[CV] END forst_reg__max_features=55, forst_reg__n_estimators=200; total time=   0.1s
[CV] END forst_reg__max_features=55, forst_reg__n_estimators=250; total time=   0.1s
[CV] END forst_reg__max_features=55, forst_reg__n_estimators=250; total time=   0.1s
[CV] END forst_reg__max_features=55, forst_reg__n_estimators=250; total time=   0.1s
[CV] END forst_reg__max_features=35, forst_reg__n_estimators=250; total time=  28.3s
[CV] END forst_reg__max_features=55, forst_reg__n_estimators=300; total time=   0.2s
[CV] END forst_reg__max_features=55, forst_reg__n_estimators=300; total time=   0.1s
[CV] END forst_reg__max_features=55, forst_reg__n_estimators=300; total time=   0.2s
[CV] END forst_reg__max_features=55, forst_reg__n_estimators=350; total time=   0.2s
[CV] END forst_reg__max_features=55, forst_reg__n_estimators=350; total time=   0.2s
[CV] END forst_reg__max_features=55, forst_reg__n_estimators=350; total time=   0.2s
[CV] END forst_reg__max_features=35, forst_reg__n_estimators=300; total time=  34.0s
[CV] END forst_reg__max_features=35, forst_reg__n_estimators=300; total time=  34.0s
[CV] END forst_reg__max_features=35, forst_reg__n_estimators=300; total time=  31.9s
[CV] END forst_reg__max_features=35, forst_reg__n_estimators=350; total time=  34.6s
[CV] END forst_reg__max_features=35, forst_reg__n_estimators=350; total time=  33.6s
[CV] END forst_reg__max_features=35, forst_reg__n_estimators=350; total time=  30.1s

# 3.4、模型推理:基于模型最佳参数

{'forst_reg__max_features': 15, 'forst_reg__n_estimators': 350}age          job   marital  education  ... pdays  previous poutcome pred
0       51    housemaid   married    unknown  ...    -1         0  unknown    0
1       32   management   married   tertiary  ...    -1         0  unknown    0
2       60      retired   married    primary  ...    -1         0  unknown    0
3       32      student    single   tertiary  ...   105         5  failure    1
4       41    housemaid   married  secondary  ...    -1         0  unknown    0
...    ...          ...       ...        ...  ...   ...       ...      ...  ...
10847   29   management    single   tertiary  ...    -1         0  unknown    0
10848   35   management   married  secondary  ...    -1         0  unknown    0
10849   38     services   married  secondary  ...    -1         0  unknown    0
10850   41       admin.  divorced  secondary  ...   363         2  failure    0
10851   34  blue-collar   married    primary  ...    -1         0  unknown    0[10852 rows x 17 columns]Process finished with exit code 0

ML之RF:基于葡萄牙银行机构营销活动数据集(年龄/职业/婚姻/违约等)利用Pipeline框架(两种类型特征并行处理)+RF模型预测(调参+交叉验证评估+模型推理)客户是否购买该银行的产品二分类案例相关推荐

  1. ML:基于葡萄牙银行机构营销活动数据集(年龄/职业等)利用Pipeline框架(两种类型特征并行处理)+多种模型预测(分层抽样+调参交叉验证评估+网格/随机搜索+推理)客户是否购买该银行的产品二分类案

    ML之pipeline:基于葡萄牙银行机构营销活动数据集(年龄/职业/婚姻/违约等)利用Pipeline框架(两种类型特征并行处理)+多种模型预测(分层抽样+调参交叉验证评估+网格搜索/随机搜索+模型 ...

  2. ML之RF:利用Pipeline(客户年龄/职业/婚姻/教育/违约/余额/住房等)预测客户是否购买该银行的产品二分类(预测、推理)

    ML之RF:利用Pipeline(客户年龄/职业/婚姻/教育/违约/余额/住房等)预测客户是否购买该银行的产品二分类(预测.推理) 目录 利用Pipeline(客户年龄/职业/婚姻/教育/违约/余额/ ...

  3. ML之RF/kNNC/LoRC/SVMC/RFC/GBDTC:利用Pipeline(客户年龄/职业/婚姻/教育/违约/余额/住房等)预测客户是否购买该银行的产品二分类(评估、调优、推理)

    ML之RF/kNNC/LoRC/SVMC/RFC/GBDTC:利用Pipeline(客户年龄/职业/婚姻/教育/违约/余额/住房等)预测客户是否购买该银行的产品二分类(评估.调优.推理) 导读:根据客 ...

  4. ML之DT:基于简单回归问题训练决策树(DIY数据集+七种{1~7}深度的决策树{依次进行10交叉验证})

    ML之DT:基于简单回归问题训练决策树(DIY数据集+七种{1~7}深度的决策树{依次进行10交叉验证}) 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核心代码 for iDepth in ...

  5. 创建一个银行账户的继承层次,表示银行的所有客户的账户。每个客户都能在他们的银行账户存钱,取钱。但是账户可以分为更具体的两种类型,例如,依靠存款生息的存储账户SavingsAccount类,另一种就是信

    不要自卑,去提升实力 互联网行业谁技术牛谁是爹 如果文章可以带给你能量,那是最好的事!请相信自己 加油o~ 创建一个银行账户的继承层次,表示银行的所有客户的账户.每个客户都能在他们的银行账户存钱,取钱 ...

  6. 创建一个银行账户的继承层次,表示银行的所有客户的账户。每个客户都能在他们的银行账户存钱,取钱。但是账户可以分为更具体的两种类型,例如,依靠存款生息的存储账户SavingsAccount类

    关联与继承练习题 题目: 源码: Account(账户)类: CheckingAccount(信用卡)类: SavingsAccount(借记卡)类: Person(用户)类: Transaction ...

  7. 一套完整的基于随机森林的机器学习流程(特征选择、交叉验证、模型评估))...

    机器学习实操(以随机森林为例) 为了展示随机森林的操作,我们用一套早期的前列腺癌和癌旁基因表达芯片数据集,包含102个样品(50个正常,52个肿瘤),2个分组和9021个变量 (基因).(https: ...

  8. 基于Netty手工实现springMVC框架-----两种方式加载控制器

    1.手写springMVC框架 本篇我们通过两种方式来加载控制器,一种是配置文件的方式:另外一种是通过注解的形式. 1.配置文件方式 1.自定义Controller配置文件XML 我定义的格式如下: ...

  9. m基于机器学习MLP的OFDM信道估计误码率matlab仿真,对比LS和MMSE两种信道估计算法

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 信道估计器是接收机一个很重要的组成部分.在OFDM系统中,信道估计器的设计上要有两个问题:一是导频信 ...

最新文章

  1. 使用Hexo搭建个人博客网站
  2. 子空间:群论的角度解释无监督深度学习
  3. 爬table数据_爬取NBA球员薪资数据【Python数据分析百例连载】
  4. Vue.JS学习笔记
  5. MATLAB实现PCA(主成分分析)
  6. 年度加密漏洞提前锁定:Java JDK 加密实现漏洞可用于伪造凭据
  7. java并发编程面试题_阿里常用Java并发编程面试试题总结
  8. 各种编程语言介绍,应用,性能等
  9. MYSQL异常处理日志:主从库同步延迟时间过长的分析
  10. [Mac]macOS Mojave 10.14.3安装Java
  11. 【面试】阿里巴巴Java经典面试题整理及答案详解
  12. 软路由服务器安装在哪个位置,软路由安装教程_软路由安装注意事项
  13. (附源码)springboot猪场管理系统 毕业设计 160901
  14. 基于springboot项目中使用docker-compose+es+kibana+logstash+mysql 提高数据查询效率
  15. laravel 模型局部不更新updated_at字段
  16. 【Sofice小司笔记】2 算法与数据结构,各类基础及常用高级数据结构、各种搜索方法、动态规划、字符串、数论、编码学、排序等,大部分都基于java实现
  17. PHP7.0微信公众平台开发4: 实例一:接收普通消息和接收事件推送
  18. Windows中使用C语言实现打印彩色文字到命令行窗口
  19. REDIS哨兵【Sentinel】模式+哨兵的核心知识点+redis哨兵主从切换的数据丢失问题+上一章铺垫的【异步复制数据丢失问题】+【集群脑裂】
  20. 2021.7 纪中快乐游记(上)

热门文章

  1. 消费升级新节点:大屏电视为何成热潮?
  2. git冲突failed to push some refs to 'git@github.com:解决
  3. 在外远程查看家里内网监控
  4. PhotoShop图层混合模式的Canvas实现
  5. Linux 正则表达式练习(更新中)
  6. 头歌Educoder——Java高级特性 - Java反射
  7. 成都东软学院15级软件技术大二上HTML5期末考试答案
  8. 权重老域名在哪里找-怎么找有历史权重域名做站
  9. 【SOLIDWORKS】SOLIDWORKS2020工程图中直径和半径的标注更改
  10. LAMP架构之nginx:nginx重定向+防盗链