熵与方差

信息熵和方差都被用作不确定性的度量,之间理应存在一定的科学关系

 

本文研究随机变量X的熵H (X)与方差σ2 之间的关系。所得结论 :对连续型随机变量X ,熵H(X)随标准差σ的增加而增加 ,对二维连续型随机变量 (X ,Y) ,联合熵H(X ,Y)随X、Y的标准差之积的增加而增加 ;对离散型随机变量X ,熵与方差无关。这一性质 ,揭示了连续型随机变量与离散型变量的本质差异。

import pandas as pd import numpy as np from sklearn.preprocessing import MinMaxScaler class OTDRAnomalyDetector: def __init__(self, weight_entropy=0.7, weight_variance=0.3, threshold=0.85): self.w_e = weight_entropy self.w_v = weight_variance self.threshold = threshold self.scaler = MinMaxScaler() def _calculate_entropy(self, sample): """计算归一化后的信息""" prob = sample / np.sum(sample) return -np.sum(prob * np.log(prob + 1e-10)) def _calculate_variance(self, sample): """计算样本方差""" return np.var(sample) def _target_function(self, sample): """目标函数:方差的加权""" entropy = self._calculate_entropy(sample) variance = self._calculate_variance(sample) return self.w_e * entropy + self.w_v * variance def _optimize_parameters(self, features): """参数优化迭代过程""" best_scores = [] for sample in features: current_score = self._target_function(sample) # 模拟算法中的迭代优化过程 optimized_score = current_score * (1 + np.random.rand()) best_scores.append(optimized_score) return np.array(best_scores) def detect_anomalies(self, data_path): """主检测函数""" # 读取并预处理数据 df = pd.read_csv(data_path) ot_columns = [f'P{i}' for i in range(1, 31)] # 数据归一化 normalized = self.scaler.fit_transform(df[ot_columns]) # 参数优化 optimized_scores = self._optimize_parameters(normalized) # 异常判断 df['anomaly_score'] = optimized_scores df['is_anomaly'] = df['anomaly_score'] > self.threshold return df[['SNR', 'Class', 'Position', 'anomaly_score', 'is_anomaly']] # 使用示例 if __name__ == "__main__": detector = OTDRAnomalyDetector() results = detector.detect_anomalies('D://5E//OTDR_data.csv') # 输出结果 print(f"异常样本数量: {results['is_anomaly'].sum()}") print("\nTop 50异常样本:") print(results[results['is_anomaly']].head(50).to_string(index=False))
最新发布
05-23
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值