2016.12.29回顾

探讨了GBDT在信贷评估中的使用方法,包括如何找到显著的衍生变量及直接建模的效果。同时提及了与其他模型如LR的结合方式,并对GBDT原理进行了深入思考。

1、上午和BI进行了沟通,把需求和相关文档整理了发给了他们

2、更新了爱尚审批阈值和多头借贷阈值

3、上午还讨论了gbdt输出概率的问题,predict_proba这个方法,我当时乍一看以为可以,其实不行,这个概率非常非常之接近?难道是数据集太好了?用一下真实的数据集

4、中午练了会舞,下午那个瞌睡哟,简直了!所以没办法跟别人学,中午还是得休息睡觉,整个下午状态都很差,下午找了一些资料,看了同业的方法,据说芝麻信用是GBDT找到交互作用的衍生变量,然后和原始变量一起用lr,GBDT怎么样找到显著的衍生变量呢?百融的方法是直接用GBDT得到模型,我看起来效果还不错,我下一步先从简单的开始,就直接用GBDT建模

5、进一步看了下GBDT原理,但是怎么说很多博客都是对原理泛泛而谈,我还是希望看一个推导更细致的过程,每一步是怎么出来的,像这种,对残差进行学习,然后累加,本身是回归树?那最后又是如何分类的呢?变量选择方法和分支方法又是什么?

<think>好的,我现在需要帮助用户解决如何从RML2016.10a_dict.pkl数据集中提取时域和频域特征的问题。首先,我需要回顾之前的对话历史,确保我的回答符合用户之前的需求,并参考用户提到的引用内容。 用户之前已经得到了关于提取时域和频域特征的步骤和代码示例,现在用户再次提问,可能是在之前的基础上需要更详细的指导或者遇到了问题。用户提到参考了站内引用,但指出引用仅供参考,需要结合之前的回答。因此,我需要确保这次回答延续之前的建议,并补充更多细节。 首先,我需要确认RML2016.10a数据集的结构。根据之前的回答,数据集的样本形状是(220000, 2, 128),其中每个样本包含两个通道(I和Q)以及128个采样点。用户可能已经加载了数据,但需要具体的提取方法。 接下来,时域特征的提取包括幅度、相位和高阶统计量。我需要详细说明每个特征的计算方法,例如幅度的均值、标准差,相位的均值和方差,以及峰度和偏度的公式。同时,要确保用户理解这些统计量如何反映信号的时域特性。 频域特征方面,FFT转换是基础,需要解释如何从复数信号转换到频域,并提取频谱均值、主频位置、能量等特征。同时,可能还需要考虑功率谱密度或其他频域统计量,但根据之前的回答,用户可能已经了解基本步骤,现在需要更深入的解释或注意事项。 用户提供的引用提到了星座图、频域图和时域图,虽然在之前的回答中已经包含了部分可视化代码,但可能需要进一步说明如何将这些图与特征提取结合起来,或者如何利用这些图来验证特征的正确性。 另外,用户可能在实际操作中遇到了问题,例如数据加载错误、特征维度不匹配,或者不理解某些步骤的具体实现。需要确保代码示例中的路径正确,数据加载部分是否适配.pkl文件而不是.npz文件,因为用户的数据集路径是.pkl格式,而之前的示例代码中使用的是.npz,这可能是一个需要修正的地方。 此外,用户提到“毕设”即毕业设计,可能时间紧迫,需要明确、高效的指导,避免复杂的理论解释,侧重代码实现和实际步骤。同时,用户可能需要特征提取后的应用建议,比如如何将这些特征用于分类模型,是否需要标准化或降维处理。 最后,确保回答结构清晰,分步骤说明,代码可运行,并解释关键参数和注意事项。需要检查是否有遗漏的步骤,例如数据预处理、复数信号的处理方法,或者特征提取后的保存方式。可能还需要提醒用户注意数据集的划分,避免在特征提取时引入偏差。</think>根据RML2016.10a数据集的IQ信号特性,以下是完整的时域/频域特征提取方案(基于数据集结构和文献实践[^1][^2]): ### 一、数据集预处理 1. **数据加载验证** ```python import pickle import numpy as np with open('RML2016.10a_dict.pkl', 'rb') as f: data = pickle.load(f, encoding='latin1') # 注意编码设置 # 验证数据结构:字典键值为SNR值,每个键值对应数组形状(N,2,128) snr_list = list(data.keys()) print("包含的SNR值:", snr_list[:5]) # 示例输出:[-20, -18, ..., 18] ``` 2. **IQ信号解析** ```python def parse_iq_sample(sample): """将(2,128)数组转换为复数信号""" return sample[0] + 1j*sample[1] # I+jQ ``` ### 二、时域特征工程 | 特征类型 | 计算公式 | 物理意义 | |----------------|-------------------------------|------------------------------| | **幅度统计** | $\mu_A = \frac{1}{N}\sum|s(n)|$ | 信号平均强度 | | **相位变化率** | $\Delta\phi = \phi(n)-\phi(n-1)$ | 相位跳变特性 | | **高阶统计量** | $\text{峰度} = \frac{E[(A-\mu_A)^4]}{\sigma_A^4}$ | 脉冲特性检测 | 完整提取函数: ```python def extract_time_features(complex_signal): amplitude = np.abs(complex_signal) phase = np.unwrap(np.angle(complex_signal)) # 解卷绕相位 features = [ # 幅度特征(6维) np.mean(amplitude), np.std(amplitude), np.var(amplitude), np.max(amplitude) - np.min(amplitude), # 峰峰值 np.percentile(amplitude, 75) - np.percentile(amplitude, 25), # 四分位距 np.sqrt(np.mean(amplitude**2)), # RMS值 # 相位特征(4维) np.mean(np.diff(phase)), # 平均相位变化率 np.std(np.diff(phase)), np.mean(np.cos(phase)), # 相位圆周统计量 np.mean(np.sin(phase)), # 高阶统计量(2维) scipy.stats.kurtosis(amplitude), scipy.stats.skew(amplitude) ] return np.array(features) ``` ### 三、频域特征工程 $$ S(k) = \sum_{n=0}^{N-1} s(n)e^{-j2\pi kn/N} $$ ```python def extract_freq_features(complex_signal, fs=200e3): n = len(complex_signal) fft_vals = fft(complex_signal) freq = fftfreq(n, 1/fs) mag = np.abs(fft_vals) # 功率谱计算 psd = np.abs(fft_vals)**2 / (fs * n) features = [ np.sum(psd), # 总功率 np.mean(mag), # 频谱均值 freq[np.argmax(mag)], # 主频位置 np.sum(psd[:n//2]) / np.sum(psd), # 正频率能量占比 scipy.stats.entropy(psd+1e-12), # 频谱熵 np.mean(psd[np.where(freq > 0.2*fs)]), # 高频成分能量 ] return np.array(features) ``` ### 四、特征融合与存储 ```python all_features = [] for snr in data.keys(): for iq_pair in data[snr]: complex_sig = parse_iq_sample(iq_pair) time_feat = extract_time_features(complex_sig) freq_feat = extract_freq_features(complex_sig) all_features.append(np.concatenate([time_feat, freq_feat])) # 最终特征矩阵 (样本数, 12+6=18维) feature_matrix = np.vstack(all_features) ``` ### 关键注意事项 1. **采样参数**:原始数据采样率200kHz,每个样本持续128/200e3 = 0.64ms 2. **复数处理**:必须保持I/Q通道的相位关系,避免单独处理单通道 3. **数据分布**:不同SNR样本需分开处理或做归一化 4. **可视化验证**(如[^1]所示) ```python def plot_constellation(complex_sig): plt.scatter(np.real(complex_sig), np.imag(complex_sig), alpha=0.5) plt.title("星座图") plt.xlabel("I分量"); plt.ylabel("Q分量") ``` ### 典型特征示例 | 调制类型 | 时域特征表现 | 频域特征表现 | |----------|------------------------------|----------------------------| | QPSK | 相位跳变明显,幅度恒定 | 频谱主瓣宽,带外衰减快 | | 16QAM | 幅度多电平分布,峰度值高 | 高频分量较多,频谱熵值大 | --相关问题-- 1. 不同调制方式的特征差异如何影响分类效果? 2. 如何验证提取特征的区分度? 3. 实时信号处理中如何优化特征计算速度?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值