基于自定義資料集(銀行客戶資訊貸款和賠償)對比實作特征衍生(T1手動設計新特征、T2利用featuretools工具實作自動特征生成)
設計思路
輸出結果
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. 計算累計最小值。