ML之FE:基于自定义数据集(银行客户信息贷款和赔偿)对比实现特征衍生(手动设计新特征、利用featuretools工具实现自动特征生成)(一)

简介: ML之FE:基于自定义数据集(银行客户信息贷款和赔偿)对比实现特征衍生(手动设计新特征、利用featuretools工具实现自动特征生成)(一)

基于自定义数据集(银行客户信息贷款和赔偿)对比实现特征衍生(T1手动设计新特征、T2利用featuretools工具实现自动特征生成)


设计思路

image.png







输出结果


clients

   client_id  age       education  income  credit_score loan_type     joined

0      44966   31  BachelorDegree   58530           822    credit 2019-05-13

1      46602   24    DoctorDegree  176949           583      cash 2020-03-14

2      38435   43    DoctorDegree  183813           596      home 2019-06-26

3      47641   48    DoctorDegree  149357           532    credit 2020-06-25

4      25942   18    DoctorDegree  227219           839      cash 2019-06-09

loans

   client_id loan_type  loan_amount  repaid  loan_id loan_start   loan_end  \

0      44966    credit         7733       0    11246 2020-09-15 2023-02-22  

1      46602      cash         9547       1    10612 2019-01-25 2021-09-22  

2      38435      home         6615       0    10339 2019-05-13 2020-12-25  

3      47641    credit         5050       1    10442 2020-02-22 2022-10-26  

4      25942      cash        14059       0    11871 2019-04-10 2021-03-29  

  rate  

0  0.42  

1  4.03  

2  5.65  

3  7.51  

4  3.58  

payments

   loan_id  payment_amount payment_date  missed

0    11246            1136   2020-11-19       0

1    11246             858   2020-11-29       0

2    11246            1245   2020-12-31       0

3    11246            1153   2021-01-17       1

4    11246             838   2021-02-10       1

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



T1、手动设计新特征


loan_type mean_loan_amount max_loan_amount min_loan_amount

cash 12014.5 14884 8458

credit 7329.857143 13457 3795

home 5456.5 10130 1430

other 9025.833333 14108 2466



T2、利用featuretools工具实现自动特征生成


将payments数据框全部加入实体集后,输出信息,

Entity: payments

 Variables:

   payment_id (dtype: index)

   loan_id (dtype: numeric)

   payment_amount (dtype: numeric)

   payment_date (dtype: datetime_time_index)

   missed (dtype: categorical)

 Shape:

   (Rows: 179, Columns: 5)

该实体集现在包括三个实体以及连接这些实体之间的关系,这时候已经做好了构造新特征的准备。

Entityset: clients

 Entities:

   clients [Rows: 25, Columns: 7]

   payments [Rows: 179, Columns: 5]

   loans [Rows: 25, Columns: 8]

 Relationships:

   loans.client_id -> clients.client_id

   payments.loan_id -> loans.loan_id

primitives:  <class 'pandas.core.frame.DataFrame'> 79



T2.1、79个Feature Primitives


[79 rows x 5 columns]


 name type dask_compatible koalas_compatible description 描述

0 all aggregation TRUE FALSE Calculates if all values are 'True' in a list. 计算列表中所有值是否均为“ True”。

1 num_unique aggregation TRUE TRUE Determines the number of distinct values, ignoring `NaN` values. 确定不同值的数量,忽略“ NaN”值。

2 any aggregation TRUE FALSE Determines if any value is 'True' in a list. 确定列表中是否有任何值为“ True”。

3 time_since_last aggregation FALSE FALSE Calculates the time elapsed since the last datetime (default in seconds). 计算自上一个日期时间以来经过的时间(默认值以秒为单位)。

4 n_most_common aggregation FALSE FALSE Determines the `n` most common elements. 确定n个最常见的元素。

5 last aggregation FALSE FALSE Determines the last value in a list. 确定列表中的最后一个值。

6 entropy aggregation FALSE FALSE Calculates the entropy for a categorical variable 计算分类变量的熵

7 num_true aggregation TRUE FALSE Counts the number of `True` values. 计算“True”值的数量。

8 median aggregation FALSE FALSE Determines the middlemost number in a list of values. 确定值列表中的最中间数字。

9 skew aggregation FALSE FALSE Computes the extent to which a distribution differs from a normal distribution. 计算分布与正态分布的差异程度。

10 max aggregation TRUE TRUE Calculates the highest value, ignoring `NaN` values. 计算最高值,而忽略“ NaN”值。

11 avg_time_between aggregation FALSE FALSE Computes the average number of seconds between consecutive events. 计算连续事件之间的平均秒数。

12 first aggregation FALSE FALSE Determines the first value in a list. 确定列表中的第一个值。

13 sum aggregation TRUE TRUE Calculates the total addition, ignoring `NaN`. 计算总的加法,忽略“ NaN”。

14 min aggregation TRUE TRUE Calculates the smallest value, ignoring `NaN` values. 计算最小值,忽略“ NaN”值。

15 mean aggregation TRUE TRUE Computes the average for a list of values. 计算值列表的平均值。

16 std aggregation TRUE TRUE Computes the dispersion relative to the mean value, ignoring `NaN`. 忽略“ NaN”,计算相对于平均值的离散度。

17 time_since_first aggregation FALSE FALSE Calculates the time elapsed since the first datetime (in seconds). 计算自第一个日期时间以来经过的时间(以秒为单位)。

18 mode aggregation FALSE FALSE Determines the most commonly repeated value. 确定最常见的重复值。

19 percent_true aggregation TRUE FALSE Determines the percent of `True` values. 确定“True”值的百分比。

20 count aggregation TRUE TRUE Determines the total number of values, excluding `NaN`. 确定值的总数,不包括“ NaN”。

21 trend aggregation FALSE FALSE Calculates the trend of a variable over time. 计算变量随时间的趋势。

22 multiply_boolean transform TRUE FALSE Element-wise multiplication of two lists of boolean values. 两个布尔值列表的逐元素相乘。

23 less_than_equal_to transform TRUE TRUE Determines if values in one list are less than or equal to another list. 确定一个列表中的值是否小于或等于另一个列表。

24 percentile transform FALSE FALSE Determines the percentile rank for each value in a list. 确定列表中每个值的百分等级。

25 num_characters transform TRUE TRUE Calculates the number of characters in a string. 计算字符串中的字符数。

26 day transform TRUE TRUE Determines the day of the month from a datetime. 从日期时间确定一个月中的哪一天。

27 cum_count transform FALSE FALSE Calculates the cumulative count. 计算累积计数。

28 scalar_subtract_numeric_feature transform TRUE TRUE Subtract each value in the list from a given scalar. 从给定的标量中减去列表中的每个值。

29 time_since_previous transform FALSE FALSE Compute the time since the previous entry in a list. 计算自列表中上一个条目以来的时间。

30 is_weekend transform TRUE TRUE Determines if a date falls on a weekend. 确定日期是否在周末。

31 year transform TRUE TRUE Determines the year value of a datetime. 确定日期时间的年份值。

32 or transform TRUE TRUE Element-wise logical OR of two lists. 两个列表的元素级逻辑或。

33 not_equal transform TRUE FALSE Determines if values in one list are not equal to another list. 确定一个列表中的值是否不等于另一个列表。

34 month transform TRUE TRUE Determines the month value of a datetime. 确定日期时间的月份值。

35 latitude transform FALSE FALSE Returns the first tuple value in a list of LatLong tuples. 返回LatLong元组列表中的第一个元组值。

36 modulo_by_feature transform TRUE TRUE Return the modulo of a scalar by each element in the list. 返回列表中每个元素的标量的模。

37 less_than_scalar transform TRUE TRUE Determines if values are less than a given scalar. 确定值是否小于给定的标量。

38 less_than_equal_to_scalar transform TRUE TRUE Determines if values are less than or equal to a given scalar. 确定值是否小于或等于给定的标量。

39 is_null transform TRUE TRUE Determines if a value is null. 确定值是否为空。

40 modulo_numeric_scalar transform TRUE TRUE Return the modulo of each element in the list by a scalar. 以标量返回列表中每个元素的模。

41 greater_than_equal_to transform TRUE TRUE Determines if values in one list are greater than or equal to another list. 确定一个列表中的值是否大于或等于另一个列表。

42 diff transform FALSE FALSE Compute the difference between the value in a list and the 计算列表中的值与

43 divide_numeric_scalar transform TRUE TRUE Divide each element in the list by a scalar. 用标量除以列表中的每个元素。

44 modulo_numeric transform TRUE TRUE Element-wise modulo of two lists. 两个列表的按元素取模。

45 multiply_numeric_scalar transform TRUE TRUE Multiply each element in the list by a scalar. 将列表中的每个元素乘以标量。

46 divide_numeric transform TRUE TRUE Element-wise division of two lists. 两个列表的按元素划分。

47 equal_scalar transform TRUE TRUE Determines if values in a list are equal to a given scalar. 确定列表中的值是否等于给定的标量。

48 age transform TRUE FALSE Calculates the age in years as a floating point number given a 给定a,以浮点数形式计算年龄(以年为单位)。

49 second transform TRUE TRUE Determines the seconds value of a datetime. 确定日期时间的秒值。

50 cum_mean transform FALSE FALSE Calculates the cumulative mean. 计算累积平均值。

51 multiply_numeric transform TRUE TRUE Element-wise multiplication of two lists. 两个列表的按元素乘法。

52 less_than transform TRUE TRUE Determines if values in one list are less than another list. 确定一个列表中的值是否小于另一个列表。

53 time_since transform TRUE FALSE Calculates time from a value to a specified cutoff datetime. 计算从值到指定的截止日期时间的时间。

54 weekday transform TRUE TRUE Determines the day of the week from a datetime. 从日期时间确定星期几。

55 haversine transform FALSE FALSE Calculates the approximate haversine distance between two LatLong 计算两个LatLong之间的大致Haversine距离

56 cum_sum transform FALSE FALSE Calculates the cumulative sum. 计算累计和。

57 add_numeric_scalar transform TRUE TRUE Add a scalar to each value in the list. 向列表中的每个值添加一个标量。

58 greater_than_scalar transform TRUE TRUE Determines if values are greater than a given scalar. 确定值是否大于给定的标量。

59 num_words transform TRUE TRUE Determines the number of words in a string by counting the spaces. 通过计算空格来确定字符串中的单词数。

60 minute transform TRUE TRUE Determines the minutes value of a datetime. 确定日期时间的分钟值。

61 absolute transform TRUE TRUE Computes the absolute value of a number. 计算数字的绝对值。

62 and transform TRUE TRUE Element-wise logical AND of two lists. 两个列表的按元素逻辑与。

63 equal transform TRUE TRUE Determines if values in one list are equal to another list. 确定一个列表中的值是否等于另一列表。

64 hour transform TRUE TRUE Determines the hour value of a datetime. 确定日期时间的小时值。

65 isin transform TRUE TRUE Determines whether a value is present in a provided list. 确定提供的列表中是否存在值。

66 subtract_numeric_scalar transform TRUE TRUE Subtract a scalar from each element in the list. 从列表中的每个元素中减去一个标量。

67 greater_than_equal_to_scalar transform TRUE TRUE Determines if values are greater than or equal to a given scalar. 确定值是否大于或等于给定的标量。

68 not transform TRUE TRUE Negates a boolean value. 取反布尔值。

69 cum_max transform FALSE FALSE Calculates the cumulative maximum. 计算累计最大值。

70 subtract_numeric transform TRUE FALSE Element-wise subtraction of two lists. 两个列表的逐元素减法。

71 greater_than transform TRUE FALSE Determines if values in one list are greater than another list. 确定一个列表中的值是否大于另一个列表。

72 week transform TRUE TRUE Determines the week of the year from a datetime. 从日期时间确定一年中的星期。

73 add_numeric transform TRUE TRUE Element-wise addition of two lists. 按元素添加两个列表。

74 divide_by_feature transform TRUE TRUE Divide a scalar by each value in the list. 将标量除以列表中的每个值。

75 not_equal_scalar transform TRUE TRUE Determines if values in a list are not equal to a given scalar. 确定列表中的值是否不等于给定的标量。

76 longitude transform FALSE FALSE Returns the second tuple value in a list of LatLong tuples. 返回LatLong元组列表中的第二个元组值。

77 negate transform TRUE TRUE Negates a numeric value. 取反数值。

78 cum_min transform FALSE FALSE Calculates the cumulative minimum. 计算累计最小值。


相关文章
ML之FE:基于自定义数据集(银行客户信息贷款和赔偿)对比实现特征衍生(手动设计新特征、利用featuretools工具实现自动特征生成)(二)
ML之FE:基于自定义数据集(银行客户信息贷款和赔偿)对比实现特征衍生(手动设计新特征、利用featuretools工具实现自动特征生成)(二)
|
SQL 机器学习/深度学习 开发框架
【网安AIGC专题10.25】8 CoLeFunDa华为团队:静默漏洞检测(识别+多分类)+数据增强、样本扩充+对比学习+微调+结果分析(降维空间,分类错误样本归纳,应用场景优势,有效性威胁分析)
【网安AIGC专题10.25】8 CoLeFunDa华为团队:静默漏洞检测(识别+多分类)+数据增强、样本扩充+对比学习+微调+结果分析(降维空间,分类错误样本归纳,应用场景优势,有效性威胁分析)
275 0
|
6月前
|
数据采集 数据挖掘
多维因素与学生辍学风险预测附录
多维因素与学生辍学风险预测附录
|
机器学习/深度学习 数据采集 人工智能
推广TrustAI可信分析:通过提升数据质量来增强在ERNIE模型下性能
推广TrustAI可信分析:通过提升数据质量来增强在ERNIE模型下性能
推广TrustAI可信分析:通过提升数据质量来增强在ERNIE模型下性能
|
3月前
|
机器学习/深度学习 算法 搜索推荐
支付宝商业化广告算法问题之在DNN模型中,特征的重要性如何评估
支付宝商业化广告算法问题之在DNN模型中,特征的重要性如何评估
|
6月前
|
存储 数据可视化
Fama French (FF) 三因子模型和CAPM模型分析股票市场投资组合风险/收益可视化
Fama French (FF) 三因子模型和CAPM模型分析股票市场投资组合风险/收益可视化
Fama French (FF) 三因子模型和CAPM模型分析股票市场投资组合风险/收益可视化
|
6月前
|
算法 数据可视化 搜索推荐
数据分享|Python用Apriori算法关联规则分析亚马逊购买书籍关联推荐客户和网络图可视化
数据分享|Python用Apriori算法关联规则分析亚马逊购买书籍关联推荐客户和网络图可视化
|
6月前
R语言向量误差修正模型 (VECMs)分析长期利率和通胀率影响关系
R语言向量误差修正模型 (VECMs)分析长期利率和通胀率影响关系
|
6月前
|
机器学习/深度学习 数据可视化 数据挖掘
R语言响应面(RSM)、线性模型lm分析生产过程影响因素可视化
R语言响应面(RSM)、线性模型lm分析生产过程影响因素可视化