首页 > 编程知识 正文

csv乱码转换成excel,怎么将csv转化excel

时间:2023-05-03 22:54:17 阅读:45293 作者:135

使用FFM数据时,一定要问几个问题。 1-ffm数据是什么意思? 特征中的数据是什么意思? 例如,133602:0、533601,该数据的原始实际数据是什么? 2-如何将实际数据转换为这种格式? 转换中必然遇到的问题(1)如何区分单值和多值特征? )2)使用模型训练ffm数据后,是否需要特征的原始对应实际数据? (这个问题跑一个模型就知道了,所以可能不是问题)3-模型训练后怎么召回? 可以使用faiss吗?

首先介绍2-生产数据格式的转换

2-1、将单值数据转换为FFM数据格式,用kaggle查看非并行版本。

这里需要理解函数make_classification

请注意,froms klearn.datasetsimportmake _ class ification的原始版本是100个samples,int是数值型数据。 所有value都是1,因为此数据feature idx都相同,str是类别数据

这里我的疑问被另一个大人物提出来了,这个有点难以理解为什么从0到1没有编码呢。

我还以为kaggle比穷追猛打高,尤其是屏蔽了我的账户吗? 卧床不起,

我要复制、粘贴、提问什么,就这样屏蔽吗? woc,笨蛋。 【我又注册了账号,重复了这个操作,确认是这个原因,想解封的时候问了我问题。 如下所示。

ifwelistallthenaturalnumbersbelow 10 thataremultiplesof3or 5,weget 3,5,6 and9. thesumofthesemultiplesis 23.findthesumofaltiofallll。 国安葛真的很任性。 】

已经进入误区了。 折回,看另一个版本

kaggle版本与微软版本的比较如下。 如下所示,10万条数据,kaggle版本的转换需要1分钟,而微软版本只需要1秒钟。 此外,我们还发现两个版本都有随数据量线性增长的趋势。 所以从时间上来说,我确定kaggle版本不行。 50万分别需要305、5.13秒,5千万可能需要3万秒和500秒,显然是后者。 【实际上服务器上有1千万个数据,time1:3585.653191、2:65.854875】

微软的版本依然与合成的数据相同,借鉴了XDeepFM踩坑的途径。 【即,对一个field的特征进行编码,然后对另一个field的特征进行编码,这一点与libffm中介绍的不同。 后者对一个数据的特征进行编码,然后开始对下一个数据的新特征进行编码】

对于离散型(数值型float )数据,这是不可能的,因为结果是kaggle版本错误。

origin data : float1float2float3string1string1clicked0- 0.462-0.587-1.221.0-0.001.547-0.301.0-0 . 197-1.0-2.015-0.925-1.140.209-2.006-1.597-1.9630.738-5.007-5 1.0-1.018-0.581-0.7210.8231 14:33333:11 6039:12 1 3:35:1 4:40:13 1 3:33:1 4:39:14 1 3:36:1 4:41:15 0 3:33:1 433 36041:16 0 33336 03:143360423360171:33:14:333:14:4333:1433604:190:333:143:14:3:14333:3 :14:3601 dtype :360 obj 360 version : clicked float1float2float3string1string 20133601:-0.4622:2:-0 1 360133601.54723360233601.9:33601-0.301433605336015336012113360133601.8842:2:1.068333:3

1:1:1.44 2:2:1.777 3:3:-0.116 4:4:1 5:9:14 1 1:1:1.425 2:2:1.727 3:3:0.197 4:7:1 5:11:15 0 1:1:-0.925 2:2:-1.14 3:3:0.209 4:4:1 5:11:16 0 1:1:-1.597 2:2:-1.963 3:3:0.738 4:4:1 5:12:17 1 1:1:-0.763 2:2:-0.938 3:3:-1.96 4:4:1 5:13:18 0 1:1:-0.581 2:2:-0.721 3:3:0.823 4:4:1 5:14:19 0 1:1:-2.389 2:2:-2.895 3:3:0.171 4:4:1 5:9:1Time 1:0.010993, 2:0.006997

如何证明这种编码是有效、正确的呢?采用movielens-1M进行FFM模型测试即可

【将评分视为label进行预测,后来发现这种做法在libffm下是不适用的,官方的模型是预测的点击与否,只能将分类结果预测出来,我看看能不能预测评分】

命令行如下:首先分割成train.ffm和test.ffm数据,我将评分除以5进行归一化,但仍旧不行啊,下面是过程及结果

$ ./ffm-train -p test.ffm train.ffm mymodelFirst check if the text file has already been converted to binary format (0.0 seconds)Binary file NOT found. Convert text file to binary file (1.2 seconds)First check if the text file has already been converted to binary format (0.0 seconds)Binary file NOT found. Convert text file to binary file (0.3 seconds)iter tr_logloss va_logloss tr_time 1 0.43943 0.42538 0.7 2 0.41742 0.42085 1.4 3 0.40935 0.41919 2.1 4 0.40203 0.41849 2.8 5 0.39509 0.41843 3.5 6 0.38823 0.41871 4.1 7 0.38129 0.41931 4.8 8 0.37428 0.42023 5.5 9 0.36742 0.42130 6.2 10 0.36089 0.42281 6.8 11 0.35491 0.42466 7.5 12 0.34955 0.42663 8.2 13 0.34474 0.42882 8.9 14 0.34051 0.43103 9.5 15 0.33675 0.43335 10.2./ffm-predict test.ffm mymodel 'testPred.txt'logloss = 0.43335

the results are bad enough !!! So will try another method,that is the reference,classify the rating into like and not like

过程及结果如下:

iter tr_logloss va_logloss tr_time 1 0.56010 0.53802 0.8 2 0.53190 0.53201 1.4 3 0.52133 0.52879 2.1 4 0.51214 0.52717 2.8 5 0.50332 0.52592 3.5 6 0.49438 0.52502 4.2 7 0.48536 0.52439 4.9 8 0.47661 0.52426 5.6 9 0.46855 0.52485 6.3 10 0.46134 0.52603 6.9 11 0.45504 0.52750 7.6 12 0.44953 0.52938 8.3 13 0.44467 0.53141 9.0 14 0.44038 0.53362 9.7 15 0.43658 0.53591 10.3

上面的loss发现 验证集第8次已经是最小了,后面的都是过拟合了,涉及早停参数,修改如下:发现并没有很好的改善

又调了一次,仍旧不理想,如下

$ ./ffm-train -p test.ffm -l 0.003 -t 50 --auto-stop train.ffm First check if the text file has already been converted to binary format (0.1 seconds)Binary file found. Skip converting text to binaryFirst check if the text file has already been converted to binary format (0.0 seconds)Binary file found. Skip converting text to binaryiter tr_logloss va_logloss tr_time 1 0.59387 0.55961 0.7 2 0.55231 0.54819 1.4 3 0.54301 0.54335 2.1 4 0.53763 0.54001 2.9 5 0.53345 0.53745 3.6 6 0.52979 0.53541 4.3 7 0.52643 0.53308 5.6 8 0.52320 0.53075 7.0 9 0.51999 0.52904 8.4 10 0.51685 0.52689 9.7 11 0.51368 0.52503 11.1 12 0.51064 0.52342 12.5 13 0.50781 0.52167 13.9 14 0.50517 0.52049 15.2 15 0.50270 0.51954 16.6 16 0.50053 0.51835 18.0 17 0.49843 0.51757 19.3 18 0.49654 0.51691 20.7 19 0.49480 0.51619 22.1 20 0.49313 0.51561 23.4 21 0.49159 0.51491 24.8 22 0.49010 0.51447 26.2 23 0.48861 0.51429 27.5 24 0.48730 0.51392 28.9 25 0.48601 0.51347 30.3 26 0.48475 0.51321 31.6 27 0.48354 0.51294 33.0 28 0.48239 0.51269 34.4 29 0.48120 0.51249 35.9 30 0.48011 0.51230 37.6 31 0.47904 0.51204 39.2 32 0.47797 0.51186 40.9 33 0.47698 0.51170 42.5 34 0.47593 0.51160 44.2 35 0.47498 0.51153 45.8 36 0.47400 0.51152 47.4 37 0.47310 0.51137 48.9 38 0.47225 0.51115 50.4 39 0.47131 0.51121Auto-stop. Use model at 38th iteration.$ ./ffm-predict test.ffm train.ffm.model 'testPred.txt'logloss = 0.51115

不行啊,无论是这种分类或者看做回归,这种代码与这种数据的结果都是不对的。所以我不知道怎么将movielens-1M的数据代入FFM代码中,这是个问题啊。也没个大佬指点下。人生艰难啊!

待续吧。

 

 

For Video Recommendation in Deep learning QQ Group 277356808

For Speech, Image, Video in deep learning QQ Group 868373192

I'm here waiting for you

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。