4,处理eid(B列)
value_counts()获取eid的频率分布,该结果将存储在eid_freq中:
train_data['eid_freq'] = train_data['eid'].map(train_data['eid'].value_counts())
test_data['eid_freq'] = test_data['eid'].map(train_data['eid'].value_counts())
mean()计算平均值,存储在eid_mean中:
train_data['eid_mean'] = train_data['eid'].map(train_data.groupby('eid')['target'].mean())
test_data['eid_mean'] = test_data['eid'].map(train_data.groupby('eid')['target'].mean())
5,处理udmap(C列)
通过比较 'udmap' 列的值是否等于 'unknown',生成了一个布尔型的数据。当 'udmap' 列的值为 'unknown' 时,返回 True,否则返回 False。再通过调用 astype(int)
将布尔值转换为整数(True 转换为 1,False 转换为 0)。
train_data['udmap_isunknown'] = (train_data['udmap'] == 'unknown').astype(int)
test_data['udmap_isunknown'] = (test_data['udmap'] == 'unknown').astype(int)
这个布尔(或整数)结果被存储在新的列 'udmap_isunknown' 中。因此,对于每个数据行,'udmap_isunknown' 列的值将表示该行的 'udmap' 值是否为 'unknown'。
6,用scikit训练树决策分析器
import lightgbm as lgb
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
clf = DecisionTreeClassifier()
clf.fit(
train_data.drop(['udmap', 'common_ts', 'uuid', 'target'], axis=1),
train_data['target']
)