libsvm数据缩放方法

assumption: min index of attributes is 1 
pass 1: find out max index of attributes :

1.1也就是找出每行有多少个特征数据,因为libsvm特征格式中每个特征前面带有下标,缺失的认为是0,这样避免稀疏矩阵,以提高计算速度。其实我获取的数据即便是0值也进行了保存,如果在保存特征时进行0值判断的话,会变得有点麻烦,也就简单化处理。这是以后可以修改的一个地方。

1.2创建保存最值的数组,并初始化。

if(restore_filename){int idx, c;fp_restore = fopen(restore_filename,"r");c = fgetc(fp_restore);if(c == 'y'){readline(fp_restore);readline(fp_restore);readline(fp_restore);}readline(fp_restore);readline(fp_restore);while(fscanf(fp_restore,"%d %*f %*f\n",&idx) == 1)max_index = max(idx,max_index);rewind(fp_restore);}while(readline(fp)!=NULL){char *p=line;SKIP_TARGETwhile(sscanf(p,"%d:%*f",&index)==1){max_index = max(max_index, index);SKIP_ELEMENTnum_nonzeros++;}		}rewind(fp);
//创建保存最值的数组feature_max = (double *)malloc((max_index+1)* sizeof(double));feature_min = (double *)malloc((max_index+1)* sizeof(double));if(feature_max == NULL || feature_min == NULL){fprintf(stderr,"can't allocate enough memory\n");exit(1);}
//初始化for(i=0;i<=max_index;i++){feature_max[i]=-DBL_MAX;feature_min[i]=DBL_MAX;}

pass 2: find out min/max value,找出每行中的最大与最小值,并传递到相应数组。

while(readline(fp)!=NULL){char *p=line;int next_index=1;double target;double value;sscanf(p,"%lf",&target);y_max = max(y_max,target);y_min = min(y_min,target);SKIP_TARGETwhile(sscanf(p,"%d:%lf",&index,&value)==2){for(i=next_index;i<index;i++){feature_max[i]=max(feature_max[i],0);feature_min[i]=min(feature_min[i],0);}feature_max[index]=max(feature_max[index],value);feature_min[index]=min(feature_min[index],value);SKIP_ELEMENTnext_index=index+1;}		for(i=next_index;i<=max_index;i++){feature_max[i]=max(feature_max[i],0);feature_min[i]=min(feature_min[i],0);}	}rewind(fp);

  pass 3: scale 缩放

while(readline(fp)!=NULL){char *p=line;int next_index=1;double target;double value;sscanf(p,"%lf",&target);output_target(target);SKIP_TARGETwhile(sscanf(p,"%d:%lf",&index,&value)==2){for(i=next_index;i<index;i++)output(i,0);output(index,value);SKIP_ELEMENTnext_index=index+1;}		for(i=next_index;i<=max_index;i++)output(i,0);printf("\n");}

  

void output_target(double value)
{if(y_scaling){if(value == y_min)value = y_lower;else if(value == y_max)value = y_upper;else value = y_lower + (y_upper-y_lower) *(value - y_min)/(y_max-y_min);}printf("%g ",value);
}

  

效果:消除了奇异样本数据对处理过程的影响。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/548736.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Extra }, or forgotten lendgroup. \makecover

问题&#xff1a; 下载UESTC 的硕士学位论文Latex模板编译后&#xff0c;遇到报错&#xff1a; 产生原因&#xff1a; 问题产生原因&#xff0c;是我偶然间发现&#xff0c;在该语句前面部分的导言区错误表示了&符号。 也就是说&#xff0c;latex中需要注意特殊符号的表…

UESTC学位论文latex模板下载

链接&#xff1a; 2019 电子科技大学 LaTeX 模板更新发布 网址&#xff1a; https://www.latexstudio.net/archives/51786.html 目前2019已经是最新的了&#xff0c;大家可以先去河畔看看还有没有最新的

Cisco 3560 Qos限速配置

Cisco 3560 Qos限速配置引用整理一、网络说明user1_PC1接在Cisco3550 F0/1上&#xff0c;速率为1&#xff2d;&#xff1b;ip_add 192.168.1.1/24 user2_PC2接在Cisco3550 F0/2上&#xff0c;速率为2&#xff2d;&#xff1b;ip_add 192.168.2.1/24 Cisco3560的G0/1为出口,或级…

texlive 2020下载与安装

下载地址 http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/2020/ 我下载的是texlive2020-20200406.iso 安装教程 Win10安装texlive2020texstudio教程 地址&#xff1a;https://zhuanlan.zhihu.com/p/320390047 如果 cmd 出现闪退现象&#xff0c;请注意查看解压…

QTP测试脚本

今天看了QTP参数化写了第一个测试脚本&#xff0c;居然能成功运行了&#xff0c;挺有成就感的&#xff0c;写下来了&#xff0c;嘿嘿……&#xff0c;下面进行详细分析&#xff1a; 转载于:https://www.cnblogs.com/hyzhou/archive/2011/11/11/2245904.html

latex插入图片之后出现大段空白,并且紧随其后的文字如同被覆盖一般不见了

产生原因 因为插入图片的语句和之前一样&#xff0c;经过多番检查排除语句本身的问题 \begin{figure*}[htbp]\centering % 使图片居中显示\vspace{-1.6cm} % 调整图片与上文的垂直距离\includegraphics[width0.8\textwidth]{exordium2.png} % 使插入的图片宽度为…

Undefined control sequence. \makecover

问题&#xff1a; 今天刚下载了github上2021年的UESTC硕士学位论文latex模板&#xff0c;直接编译\makecover报错 产生原因&#xff1a; 在begin{document}前面的内容还缺少字段 解决办法&#xff1a; 添加以下字段 \maintitle \degree 专硕需要把master改成promatesr&am…

练习写脚本的一天

今天&#xff0c;马老师给我们讲了两个命令。 echo -e 引号后面的内容支持正则表达式 -n 不换行 echo -e "\033[31mThis is a desk;\033[0m" 如何跟用户交互&#xff1a; read -p "string" read -p "Your age:" AGE read …

Latex的subcaption横向插入两张子图的的用法

用法示例 \begin{figure}[htbp]\centering\subcaptionbox{subtitle1\label{tex2kidliuxiangliang}}{\includegraphics[width6.8cm]{tex2kidliuxiangliang.jpg} }\hfill % 是为了让多幅图在一行均匀分布&#xff08;不加的效果是都挤在中间&#xff09;\subcaptionbox{subtitl…

集中管理:领导者,不能不考虑的几件事之——“挖”出来的无限可能

原文链接&#xff1a;http://www.betasoft.com.cn/laosun/2011-11-14/2054.html 我们都知道&#xff0c;分布式部署管理模式有很多集中管理所无法比拟的优势&#xff0c;但也有其自身所无可避免的缺陷。随着网络基础设施规模和业务规模的扩大&#xff0c;IT运维数据信息的管理和…

word中如何对公式插入题注和引用

编辑公式 先在对应行把公式编辑好&#xff0c;如下图所示 插入题注 1、在公式前按一次“Tab”键&#xff0c;公式后编号前再按一次“Tab”键 2、将光标放在公式的最右边&#xff0c;按下 CtrlAltEnter&#xff0c;出现新的回车键 3、我需要设置的题注格式类似于 (4-2) 这种…

双击treeView的节点时使不展开不折叠子节点

有时候我们对树控件的双击默认操作不太满意,比如我们在双击一有子节点的节点的时候不希望打开或关闭它的子节点而想执行一个特定的操作,这时怎么来写呢,我这里有一个办法可以做到这一点: using System; using System.Drawing; using System.Collections; using System.Componen…

latex模板章节序号标签加粗

问题 章节标题序号&#xff08;比如3.2,3.2.2&#xff09;加粗 修改方法 1、打开latex模板的.cls文件 2、找到定义章节序号格式的地方 3、添加\bfseries&#xff0c;这个指令就是加粗的意思 我修改的模板是uestc的thesis&#xff0c;对应需要修改的位置就在第145行&#xff…

64位操作系统上ArcGIS Server Manager页面不正常显示

在登陆ArcGIS Server Manager后&#xff0c;ArcGIS Server Manager的主页面并不能完全显示&#xff0c;这时页面下部好像被切除一样&#xff0c;位于下面的按钮也看不到。原因&#xff1a;这个问题是由IE增强的安全配置&#xff08;Internet Explorer Enhanced Security Config…

latex模板摘要目录标题字号

问题 解决方法 \fontsize{15pt}{15pt} 附&#xff1a;中英文字号对应关系

[CMMI]中型项目流程梳理

需求&#xff1a;产出&#xff08;需求类文档、计划类文档&#xff09; Scope&#xff08;整体定义 →整体筛选→整体分割→ →局部Detail →局部Question List&#xff09; Schedule&#xff08;全局Milestone →全局批次→局部Milestone →局部批次&#xff09; 需求Review&a…

latex摘要目录页眉缺少一个空格

找到定义摘要和目录的位置&#xff0c;在对应设置页眉的地方添加\chinesespace&#xff0c;如下两图所示 保存.cls文件&#xff0c;重新构建并编译文章即可 如果不是中文空格&#xff0c;大致估算一下你需要的空格距离&#xff0c;使用\hspace{}命令&#xff0c;比如我需要加…

latex目录标题中间空一个字符

问题 论文撰写规范中 目录 俩字中间空了一个字符&#xff0c;即一个中文空格的距离&#xff0c;但是latex模板里面实际距离是6pt 修改 将\hspace{6pt}修改为chinesespace 修改后保存.cls文件&#xff0c;重新编译整个文档即可。

DIV相对于父DIV底部对齐的实现方法-Div+CSS教程

1: 底部对齐的代码(相对于父块)&#xff1a; <style type"text/css">.box1 {border:1px #cccccc solid; width:500px; height:600px;position:relative;}.box2 {border-top:1px #cccccc solid; background:#f2f6fb; width:498px; height:22px; position:absolu…

latex在texstudio中编译tex文件不显示攻读硕士学位期间取得的成果

解决方案&#xff1a; 成果的显示需要命令行进行手动编译。就好像参考文献reference.bib文件每次修改之后需要编译两遍一样。不过texstudio有参考文献编译的快捷键&#xff0c;但是publications.bib没有快捷键&#xff0c;所以需要命令行手动编译。 执行步骤 首先将命令行工…