进行数据挖掘预测设计实验,数据集预测出现问题,不明白怎么回事,也不知道怎么改,求解决
你把报错发给我看看
#10W名用户的播放量占总体的比例
total_play_count = sum(song_count_df.play_count)
print ((float(play_count_df.head(n=100000).play_count.sum())/total_play_count)*100)
play_count_subset = play_count_df.head(n=100000)
40.8807280500655
(float(song_count_df.head(n=30000).play_count.sum())/total_play_count)*100
78.39315366645269
song_count_subset = song_count_df.head(n=30000)
前3W首歌的播放量占到了总体的78.39%
现在已经有了这10W名忠实用户和3W首经典歌曲,接下来我们就要对原始数据集进行过滤清洗,说白了就是在原始数据集中剔除掉不包含这些用户以及歌曲的数据。
取10W个用户,3W首歌
user_subset = list(play_count_subset.user)
song_subset = list(song_count_subset.song)
过滤掉其他用户数据
#读取原始数据集
triplet_dataset = pd.read_csv(filepath_or_buffer=data_home+'train_triplets.txt',sep='\t',
header=None, names=['user','song','play_count'])
#只保留有这10W名用户的数据,其余过滤掉
triplet_dataset_sub = triplet_dataset[triplet_dataset.user.isin(user_subset) ]
del(triplet_dataset)
#只保留有这3W首歌曲的数据,其余也过滤掉
triplet_dataset_sub_song = triplet_dataset_sub[triplet_dataset_sub.song.isin(song_subset)]
del(triplet_dataset_sub)
triplet_dataset_sub_song.to_csv(path_or_buf=data_home+'triplet_dataset_sub_song.csv', index=False)
当前我们的数据量
triplet_dataset_sub_song.shape
(10774558, 3)
数据样本个数此时只有原来的1/4不到,但是我们过滤掉的样本都是稀疏数据不利于建模,所以当拿到了数据之后对数据进行清洗和预处理工作还是非常有必要的,不单单提升计算的速度,还会影响最终的结果。
triplet_dataset_sub_song.head(n=10)
user | song | play_count | |
---|---|---|---|
498 | d6589314c0a9bcbca4fee0c93b14bc402363afea | SOADQPP12A67020C82 | 12 |
499 | d6589314c0a9bcbca4fee0c93b14bc402363afea | SOAFTRR12AF72A8D4D | 1 |
500 | d6589314c0a9bcbca4fee0c93b14bc402363afea | SOANQFY12AB0183239 | 1 |
501 | d6589314c0a9bcbca4fee0c93b14bc402363afea | SOAYATB12A6701FD50 | 1 |
502 | d6589314c0a9bcbca4fee0c93b14bc402363afea | SOBOAFP12A8C131F36 | 7 |
503 | d6589314c0a9bcbca4fee0c93b14bc402363afea | SOBONKR12A58A7A7E0 | 26 |
504 | d6589314c0a9bcbca4fee0c93b14bc402363afea | SOBZZDU12A6310D8A3 | 7 |
505 | d6589314c0a9bcbca4fee0c93b14bc402363afea | SOCAHRT12A8C13A1A4 | 5 |
506 | d6589314c0a9bcbca4fee0c93b14bc402363afea | SODASIJ12A6D4F5D89 | 1 |
507 | d6589314c0a9bcbca4fee0c93b14bc402363afea | SODEAWL12AB0187032 | 8 |
看看你的数据集里面是否有sample列,是不是列名写错了。
或者数据加载有问题。