数据的变换算法
import pandas as pd data = pd.read_csv("./discretization_data.csv") # data.describe(percentiles=) print data data = data["coefficient"].copy() k = 4 # k等于4是什么意思啊? d1 = pd.cut(data, k, labels=range(k)) # 等宽离散化,各个类比依次命名为0,1,2,3 # 等频率离散化 w = [1.0 * i/k for i in range(k+1)] w = data.describe(percentiles=w)[4:4+k+1] # 使用describe函数自动计算分位数 w[0] = w[0]*(1-1e-10) d2 = pd.cut(data,w,labels=range(k)) from sklearn.cluster import KMeans kmodel = KMeans(n_clusters=k, n_jobs=4) # 创建模型,n_jobs是并行数,通常等于cpu数较好 kmodel.fit(data.reshape((len(data), 1))) # 训练模型 c = pd.DataFrame(kmodel.cluster_centers_).sort(0) # 输出聚类中心,而且排序(默认是随机序的) w = pd.rolling_mean(c,2).iloc[1:] # 相邻两项求中点,做为边界点 w = [0] + list(w[0]) + [data.max()] # 把首末边界点加上 d3 = pd.cut(data, w, labels=range(k)) def cluster_plot(d,k): # 自定义做图函数来显示聚类结果 import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签 plt.rcParams['axes.unicode_minus'] = False # 用来正常显示符号 plt.figure(figsize=(8,3)) for j in range(0, k): plt.plot(data[d==j], [j for i in d[d==j]], 'o') plt.ylim(-0.5, k-0.5) return plt cluster_plot(d1, k).show() cluster_plot(d2, k).show() cluster_plot(d3, k).show()
基于小波变换的特征提取方法
|
方法描述
|
---|---|
基于小波包变换的特征提取方法 | 利用小波分解,可将时域随机信号序列映射为尺度域各子空间内的随机系数序列,按小波分解获得的最佳子空间内随机系数序列的不肯定型程度最低.将最佳子空间的熵值及最佳子空间在完整二叉树中的位置参数做为特征量,可疑用于目标识别 |
基于小波变换的多尺度空间的模式极大值特征提取方法 | 利用小波变换的信号局域化分析能力,求解小波变换的模极大值特性来检测信号的局部奇异性,将小波变换模极大值特性来检测信号的局部奇异性,将小波变换模极大值的尺度参数s,平移参数t及其幅值做为目标的特征量 |
基于小波变换的多尺度空间能量分布特征提取方法 | 各尺度空间内的平滑信号和细节信号能提供原始信号的时频局域信息,特别时能提供不一样频段上信号的构成信息.把不一样频段上的信号的构成信息.把不一样分解尺度上信号的能量求解出来,就能够将这些能量尺度顺序排列,造成特征向量供识别用 |
基于适应性小波神经网络的特征提取方法 | 基于适应性小波神经网络的特征提取方法可疑经过分析小波拟合表示进行特征提取.网络 |
小波基函数app
其中A时近似信号,为低频信号部分;D时细节信号,为高频部分.