精华内容
下载资源
问答
  • 例如,每个数据项的都很大,许多这样的进行计算可能超过常用数据类型的取值范围,这时取对数,就把数值缩小了,例如TF-IDF计算时,由于在大规模语料库中,很多词的频率是非常大的数字。 2、取对数后,可以...

    平时在一些数据处理中,经常会把原始数据取对数后进一步处理。之所以这样做是基于对数函数在其定义域内是单调增函数,取对数后不会改变数据的相对关系,取对数作用主要有:
    1、缩小数据的绝对数值,方便计算。例如,每个数据项的值都很大,许多这样的值进行计算可能对超过常用数据类型的取值范围,这时取对数,就把数值缩小了,例如TF-IDF计算时,由于在大规模语料库中,很多词的频率是非常大的数字。

    2、取对数后,可以将乘法计算转换称加法计算。

    3、某些情况下,在数据的整个值域中的在不同区间的差异带来的影响不同。例如,中文分词的mmseg算法,计算语素自由度时候就取了对数,这是因为,如果某两个字的频率分别都是500,频率和为1000,另外两个字的频率分别为200和800,如果单纯比较频率和都是相等的,但是取对数后,log500=2.69897,
    log200=2.30103, log800=2.90308 这时候前者为2log500=5.39794, 后者为log200+log800=5.20411,这时前者的和更大,取前者。因为前面两个词频率都是500,可见都比较常见。后面有个词频是200,说明不太常见,所以选择前者。
    4. 取对数之后不会改变数据的性质和相关关系,但压缩了变量的尺度
    5. 所得到的数据易消除异方差问题。稳定方差

    展开全文
  • import pandas as pd import numpy as np fcc_survey_df = pd.read_csv('fcc_2016_coder_survey_subset.csv',encoding='...fcc_survey_df['Income_log'] = np.log(1 + fcc_survey_df['Income']) # 对数变换 fcc_s...
    import pandas as pd
    import numpy as np
    
    fcc_survey_df = pd.read_csv('fcc_2016_coder_survey_subset.csv',encoding='utf-8')
    
    fcc_survey_df['Income_log'] = np.log(1 + fcc_survey_df['Income']) # 对数变换
    fcc_survey_df[['ID.x','Age','Income','Income_log']].iloc[4:9]
    

    在这里插入图片描述

    import matplotlib.pyplot as plt
    import matplotlib as mpl
    %matplotlib inline
    mpl.style.reload_library()
    mpl.style.use('classic')
    mpl.rcParams['figure.facecolor'] = (1,1,1,0)
    mpl.rcParams['figure.dpi'] = 100
    mpl.rcParams['font.sans-serif'] = 'MicroSoft YaHei'
    mpl.rcParams['axes.unicode_minus'] = False
    
    income_log_mean = np.round(np.mean(fcc_survey_df['Income_log']), 2)
    
    fig, ax = plt.subplots(figsize = (8,6))
    fcc_survey_df['Income_log'].hist(bins=30, color='#A9C6D3')
    plt.axvline(income_log_mean, color='r')
    ax.set_title('Developer Income Histogram after Log Transform', fontsize = 14)
    ax.set_xlabel('Developer Income (log scale)', fontsize = 12)
    ax.set_ylabel('Frequency', fontsize = 12)
    ax.text(11.5, 450, r'$\mu$='+str(income_log_mean), fontsize = 11)
    

    在这里插入图片描述

    展开全文
  • 为什么特征数据要做对数变换?

    千次阅读 2019-05-10 12:42:30
    例如,每个数据项的都很大,许多这样的进行计算可能超过常用数据类型的取值范围,这时取对数,就把数值缩小了,例如TF-IDF计算时,由于在大规模语料库中,很多词的频率是非常大的数字。 取对数后,可以...

    平时在一些数据处理中,经常会把原始数据取对数后进一步处理。之所以这样做是基于对数函数在其定义域内是单调增函数,取对数后不会改变数据的相对关系,取对数作用主要有:

    1. 缩小数据的绝对数值,方便计算。例如,每个数据项的值都很大,许多这样的值进行计算可能对超过常用数据类型的取值范围,这时取对数,就把数值缩小了,例如TF-IDF计算时,由于在大规模语料库中,很多词的频率是非常大的数字。

    2. 取对数后,可以将乘法计算转换称加法计算。

    3. 某些情况下,在数据的整个值域中的在不同区间的差异带来的影响不同。例如,中文分词的mmseg算法,计算语素自由度时候就取了对数,这是因为,如果某两个字的频率分别都是500,频率和为1000,另外两个字的频率分别为200和800,如果单纯比较频率和都是相等的,但是取对数后,log500=2.69897,
      log200=2.30103, log800=2.90308 这时候前者为2log500=5.39794, 后者为log200+log800=5.20411,这时前者的和更大,取前者。因为前面两个词频率都是500,可见都比较常见。后面有个词频是200,说明不太常见,所以选择前者。

    从log函数的图像可以看到,自变量x的值越小,函数值y的变化越快,还是前面的例子,同样是相差了300,但log500-log200>log800-log500,因为前面一对的比后面一对更小。

    也就是说,对数值小的部分差异的敏感程度比数值大的部分的差异敏感程度更高。这也是符合生活常识的,例如对于价格,买个家电,如果价格相差几百元能够很大程度影响你决策,但是你买汽车时相差几百元你会忽略不计了。
    4. 取对数之后不会改变数据的性质和相关关系,但压缩了变量的尺度,例如800/200=4,
    但log800/log200=1.2616,数据更加平稳,也消弱了模型的共线性、异方差性等。

    1. 所得到的数据易消除异方差问题。

    2. 在经济学中,常取自然对数再做回归,这时回归方程为 lnY=a lnX+b ,两边同时对X求导,1/Y*(DY/DX)=a1/X, b=(DY/DX)(X/Y)=(DYX)/(DXY)=(DY/Y)/(DX/X)
      这正好是弹性的定义。

    展开全文
  • 时域特征值的代码实现可以参考:时域特征值提取的MATLAB代码实现(均方根、峰值因子、脉冲因子、裕度因子、峭度因子、波形因子和偏度等) 文章如要转载请私信与我联系,并注明来源知乎专栏与信号处理有关的那些东东...

    本篇文章是信号的各种频域分析方法的理解(频谱、能量谱、功率谱、倒频谱、小波分析的后续,对文章中提到的频域分析方法进行代码实现。

    时域特征值的代码实现可以参考:时域特征值提取的MATLAB代码实现(均方根、峰值因子、脉冲因子、裕度因子、峭度因子、波形因子和偏度等)

    文章如要转载请私信与我联系,并注明来源知乎专栏与信号处理有关的那些东东作者Mr.括号。

    一、频谱

    频谱用到的函数主要是fft和fftshift。

    需要注意的主要有三点:

    1.直接做fft的结果,信号的前半部分对应频率[0,fs/2],后半部分对应[-fs/2,0]。参见频谱结果图的第2张。为了将零频点移到频谱中间,需要使用fftshift函数,结果参见频谱结果图的第3张。

    2.通常我们关心的都是正频率区间的结果,有两种截取方法,一种是在fftshift的结果中截后半段,一种是在fft的结果中截前半段,其结果是一样的。后一种方法更简洁。具体参见频谱结果图的第4、5张。

    3.根据奈奎斯特定理,信号的采样频率(1/t_s)必须大于信号频率最大值的两倍。

    t_s = 0.01; %采样周期
    t_start = 0.5; %起始时间
    t_end = 5;     %结束时间
    t = t_start : t_s : t_end;
    y = 1.5*sin(2*pi*5*t)+3*sin(2*pi*20*t)+randn(1,length(t));  %生成信号
    
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%频谱%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    y_f = fft(y); %傅里叶变换
    subplot(5,1,1);
    plot(t,y);title('original signal');   %绘制原始信号图
    Druation = t_end -t_start;  %计算采样时间
    Sampling_points = Druation/t_s +1;  %采样点数,fft后的点数就是这个数
    f_s = 1/t_s; %采样频率
    f_x = 0:f_s/(Sampling_points -1):f_s;  %注意这里和横坐标频率对应上了,频率分辨率就是f_s/(Sampling_points -1)
    t2 = f_x-f_s/2;
    shift_f = abs(fftshift(y_f));
    subplot(5,1,2);
    plot(f_x,abs(y_f));title('fft transform');
    subplot(5,1,3);
    plot(f_x-f_s/2,shift_f);title('shift fft transform');  %将0频率分量移到坐标中心
    subplot(5,1,4);
    plot(t2(length(t2)/2:length(t2)),shift_f(length(shift_f)/2:length(shift_f)));title('shift fft transform');   %保留正频率部分
    subplot(5,1,5);
    plot(f_x(1:length(f_x)/2),abs(y_f(1:length(f_x)/2)));title('fft cut');  %直接截取fft结果的前半部分

    频谱分析结果

    二、功率谱

    功率谱有两种求法:1.(傅立叶变换的平方)/(区间长度);2.自相关函数的傅里叶变换。这两种方法分别叫做直接法和相关函数法。(参见信号的各种频域分析方法的理解(频谱、能量谱、功率谱、倒频谱、小波分析)

    下述代码中,直接法就用了(傅立叶变换的平方)/(区间长度)的方法求解的,其结果和使用MATLAB的函数periodogram(周期图法)结果相同;虽然理论上直接法和相关函数法相同,不过仿真结果中相关函数法对噪声的抑制效果更好,图线更平滑。

    Fs = 1000;
    nfft = 1000;  %fft采样点数
    
    %产生序列
    n = 0:1/Fs:1;
    xn = cos(2*pi*100*n) + 3*cos(2*pi*200*n)+(randn(size(n)));
    subplot(5,1,1);plot(xn);title('加噪信号');xlim([0 1000]);grid on
    %FFT
    Y = fft(xn,nfft);
    Y = abs(Y);
    subplot(5,1,2);plot((10*log10(Y(1:nfft/2))));title('FFT');xlim([0 500]);grid on
    %FFT直接平方
    Y2 = Y.^2/(nfft);
    subplot(5,1,3);plot(10*log10(Y2(1:nfft/2)));title('直接法');xlim([0 500]);grid on
    %周期图法
    window = boxcar(length(xn));  %矩形窗
    [psd1,f] = periodogram(xn,window,nfft,Fs);
    psd1 = psd1 / max(psd1);
    subplot(5,1,4);plot(f,10*log10(psd1));title('周期图法');ylim([-60 10]);grid on
    %自相关结果
    cxn = xcorr(xn,'unbiased');  %计算自相关函数
    %自相关法
    CXk = fft(cxn,nfft);
    psd2 = abs(CXk);
    index = 0:round(nfft/2-1);
    k = index*Fs/nfft;
    psd2 = psd2/max(psd2);
    psd2 = 10*log10(psd2(index+1));
    subplot(5,1,5);plot(k,psd2);title('间接法');grid on

    下图中的纵坐标都进行了取对数的处理(10log),取对数的目的是使那些振幅较低的成分相对高振幅成分得以拉高,以便观察掩盖在低幅噪声中的信号特征。

    功率谱分析结果

    三、倒频谱

    倒频谱的求解函数为rceps(实倒频谱),在MATLAB的帮助文档中,rceps的计算公式为real(ifft(log(abs(fft(y))))),即信号→频谱→对数→傅里叶逆变换,而倒频谱的定义表述中却是信号→功率谱→对数→傅里叶逆变换。即功率谱被换成了频谱。私以为是因为功率谱为频谱值的平方,在取对数后平方会变成系数2,对后续计算影响不大,因而可以近似认为结果相同。

    在仿真中要看出倒频谱的作用,需要手动生成一组调制信号。下列程序将高频(主频为50/100/200Hz)和低频(主频为5/10/20Hz)信号进行调制,分别画出低频、高频和调制信号的时域图和频谱图。在图ftt_y中可以看到边频带的形成。(边频带相关概念参见信号的各种频域分析方法的理解(频谱、能量谱、功率谱、倒频谱、小波分析

    代码如下:

    sf = 1000;
    nfft = 1000;
    x = 0:1/sf:5;
    y1=10*cos(2*pi*5*x)+7*cos(2*pi*10*x)+5*cos(2*pi*20*x)+0.5*randn(size(x));
    y2=20*cos(2*pi*50*x)+15*cos(2*pi*100*x)+25*cos(2*pi*200*x)+0.5*randn(size(x));
    for i = 1:length(x)
        y(i) = y1(i)*y2(i);
    end
    subplot(3,3,1)
    plot(y1);xlim([0 5000]);title('y1');
    subplot(3,3,2)
    plot(y2);xlim([0 5000]);title('y2');
    subplot(3,3,3)
    plot(y);xlim([0 5000]);title('y=y1*y2');
    
    t = 0:1/sf:(nfft-1)/sf;
    nn = 1:nfft;
    subplot(3,3,4)
    ft = fft(y1,nfft);
    Y = abs(ft);
    plot(0:nfft/2-1,((Y(1:nfft/2))));
    title('fft_y_1');
    ylabel('幅值');xlim([0 300]);
    grid on;
    subplot(3,3,5)
    ft = fft(y2,nfft);
    Y = abs(ft);
    plot(0:nfft/2-1,((Y(1:nfft/2))));
    title('fft_y_2');
    ylabel('幅值');xlim([0 300]);
    grid on;
    subplot(3,3,6)
    ft = fft(y,nfft);
    Y = abs(ft);
    plot(0:nfft/2-1,((Y(1:nfft/2))));
    title('fft_y');
    ylabel('幅值');xlim([0 300]);
    grid on;
    
    subplot(3,3,7)
    z = rceps(y);
    plot(t(nn),abs(z(nn)));
    title('z=rceps(y)');ylim([0 0.3]);
    xlabel('时间(s)');
    ylabel('幅值');
    grid on;
    subplot(3,3,8)
    yy = real(ifft(log(abs(fft(y))))); %信号→傅里叶→对数→傅里叶逆变换
    plot(t(nn),abs(yy(nn)));
    title('real(ifft(log(abs(fft(y)))))');ylim([0 0.3]);
    xlabel('时间(s)');
    ylabel('幅值');
    grid on;

    倒频谱分析结果

    上图红圈处可以看到三个峰值,分别是0.05s、0.1s和0.2s。其对应的频率分别为20Hz、10Hz和5Hz,正是调制信号的低频分量。该低频分量在图fft_y中以边频带的形式出现,无法看出其对应频率值,而在倒频谱中能轻易展现。这正是倒频谱的意义所在。

     

     

    参考:

    对功率谱的一点理解 - cynchanpin - 博客园

    信号处理方法 - 声振论坛 - 振动,动力学,声学,信号处理,故障诊断 - Powered by Discuz!

    展开全文
  • 机器学习——文本特征值表示

    千次阅读 2019-03-15 22:25:21
    数据最简单的编码之一是使用单词计数,对于每个短语,仅仅计算其中每个单词出现的次数,在sklearn中,使用CountVectorizer就可以轻松解决! 看代码: # ——创建时间:2019.3.15—— # 文本特征表示 from ...
  • 网页去重(三)之特征值的提取

    千次阅读 2015-12-24 18:53:50
    网页去重(三)特征值 一、 什么是特征值 下面收集来自百度百科的资料: TFIDF的主要思想是:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分...
  • 特征工程的基础介绍和常用方法总结,包括对数转换、特征标准化、离散化、Label Encoder、OneHot Encoder 以及 Dummy Variables。
  • 对数几率回归

    千次阅读 2017-08-13 21:36:11
    如是二分类任务,其输出标记为,而线性回归的预测为实,我们需将实转为0/1,我们必然想到单位阶跃函数(unit-step function),若大于0就判为正例,小于0则判为反例,预测为临界为0则可任意判别。但
  • matlab画对数坐标!

    千次阅读 2017-05-02 11:34:03
    在很多工程问题中,通过数据进行对数转换可以更清晰地看出数据的某些特征,在对数坐标系中描绘数据点的曲线,可以直接地表现对数转换。 对数转换有双对数坐标转换和单轴对数坐标转换两种。用loglog函数可以实现...
  • 一共有1000个样本,每个样本3个特征值,X就是一个 3 × 1000 3 \times 1000 3 × 1 0 0 0 的矩阵,模样是酱紫的: X =   ( X 1 X 2 … X 1000 ) = ( x 1 , 1 x 2 , 1 … x 1000 , 1   x 1 , 2 x 2 , 2 … x 1000...
  • 对数几率函数(logistic function)是sigmoid函数的重要代表
  • logm--求矩阵的对数

    千次阅读 2015-12-24 11:18:09
    如果矩阵A是奇异的或者有特征值在负实数轴,那么A的主要对数是未定义的,函数将计算非主要对数并打印警告信息。logm函数是expm函数的逆运算。 2.[L,exitflag]=logm(A) exitflag是一个标量值,用于描述函数...
  • 本文介绍对数几率回归模型,是一个典型的二分类任务学习模型 书接上回,我们可以一个数据集得到它的回归方程 我们是这样去解读回归方程的:在相关属性下样例的某一特征的度量 我们根据回归方程得到的特征度量...
  • 对数的发展史

    千次阅读 2014-11-04 23:34:43
    教材分析:对数产生于17世纪初叶,为了适应航海事业的发展,需要确定航程和船舶的位置,为了适应天文事业的发展,需要处理观测行星运动的数据,就是为了解决很多位数的数字繁杂的计算而产生了对数恩格斯曾把对数的...
  • 看底层C++代码之前最好把GMM弄懂,比如多元高斯模型的公式,混合高斯模型的公式,GMM的对数似然函数,MLE, EM 和MAP。 记得在做MLE时,记得把GMM中的那个P(x|theta)=多元高斯模型的公式,然后把里面展开,log...
  • 1 对数几率回归原理分析 1.1 引入 1.2 损失函数 1.3 求最优解 2 对数几率回归实践 Logistic回归的一般过程 Logistic回归的优缺点 Logistic回归算法描述(改进的随机梯度下降) 《机器学习实战》第五章代码...
  • 来计算的,实际上,取对数计算的时候只是影响的的大小,但是并不影响相对大小,也可以选用其他的底数,但是本质上是一样的,而且不同底数之间也可以通过换底公式计算。 H A ( X ) = − ( 7 9 × l o g 2 7 9 + 2...
  • 概率密度函数在概率论与统计学中,对数正态分布是对数为正态分布的任意随机变量的概率分布。如果 XX 是正态分布的随机变量,则 exp(X)exp(X) 为对数正态分布;同样,如果Y Y 是对数正态分布,则 ln(Y)ln(Y) 为正态...
  • 1、应用背景:实际业务场景,我们会遇到一些特征随着时间(量)的变大,实际的意义成指数衰减或增加。例如: 用户收到的邮件越多,每封邮件用户的影响越小,因此计算每封邮件的价值时,我们不能等同计算,需要做...
  • 机器学习篇——对数线性模型

    千次阅读 2018-04-14 15:36:29
    对数线性模型包括逻辑回归、最大熵模型和条件随机场等 1、模型 条件概率分布(对数线性模型、概率模型)、判别模型 逻辑回归: 概率分布可由广义线性模型推导得到 多分类时,分子部分为:第k类exp(-wk*x+b),...
  • TensorFlow实现对数几率回归

    千次阅读 2017-05-05 17:38:56
    注:本文来自《面向机器智能的TensorFlow实践》一书,请购买正版图书:https://item.jd.com/12176592.html线性回归模型所预测的是一个连续或任意实数。下面介绍一种能够回答Yes-No类型的问题(如,这封邮件是否为...
  • Farid等人通过大量的载体图像分析发现,在小波状分解中存在强大的高阶统计规律【1】。嵌入信息之后会明显的改变这些统计特征,可以被用来作为分析的工具,并且可以结合支持向量机(线性和非线性)来检测这些统计...
  • 回归模型中对数变换的含义

    千次阅读 2020-06-23 18:32:44
    1.1 因变量采用对数变换 ln(y^)=β0+β1×xln(\hat y)=\beta_0 +\beta_1 \times xln(y^​)=β0​+β1​×x x→x+1;y^1→y^2x \to x+1; \hat y_1 \to \hat y_2x→x+1;y^​1​→y^​2​ {y^1=eβ0+β1×xy^2=eβ0+β1...
  • 1.基本形式   给定由d个属性描述的示例 ...称为“几率”,反映了x作为正例的相对可能性,几率取对数得到“对数几率” ln 1 1 − y \ln\frac{1}{1-y} 可以通过“极大似然法”估计 w w 与 b b 。
  • 语音特征提取: MFCC的理解

    千次阅读 2019-04-12 11:43:18
    文章目录1. 一般wav提取特征的方式:2. 什么是MFCC:3. 什么求倒谱:4. 什么是频谱的包络:5....1. 一般wav提取特征的方式: 2. 什么是MFCC: ...求倒谱 就是频谱取对数,再做傅里叶变换,又回去了。 实...
  • 离散对数问题,英文是Discrete logarithm Problem,有时候简写为Discrete log,该问题是十几个开放数学问题(Open Problems in Mathematics, [0.a], [0.b])中的一个。为什么要从离散对数问题说起?因为后面的内容中会...
  • 对数几率回归 —— Logistic Regression

    千次阅读 2018-07-02 16:13:12
    对数几率函数是任意阶可导函数,它有着很好的数学性质,很多数值优化算法都可以直接用于求最优解。 总的来说,模型的完全形式如下: 其实,LR 模型就是在拟合   这条直线,使得这条直线尽可能地将原始数据中的两...
  • 年度、公司或行业特征 的 虚拟变量 。当虚拟变量的数目众多时,采用手动输入变量的方式会非常耗时。例如,下述 模型(1) 是文献中广泛应用的 双向固定效应模型 : y i t = α i + λ t + x i t ′ β + ε i t (1) ...
  • 这几天做了一个小作业,采用对数回归的方法进给定数集进行训练后再测试,我用的是机器学习实战中介绍的随机梯度上升的办法训练,由于接触机器学习和Python不久,这个主要是为了记录自己的学习之路,希望慢慢的从中...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 30,797
精华内容 12,318
关键字:

对特征值取对数