京东服装数据分析及决策树
目录:
1…前期准备工作
2…可视化分析
3…决策树模型
前期准备工作
项目结构
proxy_ip 爬取西刺网代理ip jdproduct爬京东服装数据
analysis_men分析男装女装数据进行对比 analysis_merge所有销量不为0的数据
DesicionTreeModel决策树模型训练 GraphvizTree决策树可视化展示
参考数据:
女装:526416条
男装:406834条
运动服饰:228401条 共1161651条 (116万)
技术总结:
反爬:
1设置随机user-agent(通过fake_useragent)
2 代理ip (从ip地址网爬取ip设置代理池)
3如有验证码 可以用云打码网去认证或者手动打码
提速:
1批量写入数据库提高速度(比如每到一千条进行插入,但是这样缺点是如果错误会导致大批量数据出错)
2用scrapy设置多线程数,尽可能更大来同时处理,同时将延迟设置为0
数据清洗:(为了保证数据真实性需要弥补空值,比如取临近值或者平均值等)
清洗不要的列 name category_id img_url venderId
去除关键字: 材质: 商品毛重:适用季节:适用人群:上市时间:风格:面料:
可视化分析
可视化工具:pyecharts,matplotlib
clothes_info_merge.csv:所有服装销量非0的数据
品牌销量: 花花公子>南极人>阿迪>李宁>安踏
店铺销量:自营>阿迪官方>A21官方>李宁>班尼路>海澜之家>安踏
省份销量排行:广东>浙江>福建>江苏>上海>北京
绝大多数衣服价格分布在100-300 > 0-100 >300-500,而对应销量来说 也是如此。
这说明还是平价衣服比较
此为衣服主打风格词云,可以发现最多为:
商务 休闲 中国 通勤 青春 流行
clothes_info_men_cleaned,clothes_info_women_cleaned.csv:(对男女装分别分析)
观察一下男女装分类数量对比,可以发现基本衣服数量差不多,女装略大于男装,也属正常。
可以发现不管男装还是女装,平均价格最高都是在每年的冬季,最低是夏季。这和现实相符,棉衣等的价格肯定普遍高于短袖短裤等。而春秋上市的衣服基本价格差不多,这是因为很多种类的衣服春秋都可以穿。
男女装材质对比:
男装 棉>聚酯纤维>聚酰胺纤维(锦纶)>羊毛>粘胶纤维(粘纤)
女装 棉>聚酯纤维>粘胶纤维(粘纤)>全棉牛仔布>聚对苯二甲酸乙二酯(涤纶)
总结 衣服材质前三:棉>聚酯纤维>粘胶纤维(粘纤)
对最畅销的材质进行价格评估:
棉 200-400 聚酯纤维 200-1000 粘胶纤维(粘纤) 200-400
可以发现绝大多数材料对应的都是200-400这个区间
男女装衣服尺寸统计:男士尺寸基本集中于L,XL,2XL,3XL(170-185cm)
女士尺寸集中于M L XL (165-175cm)
对男女装衣服颜色进行统计:
男士最多的颜色是 黑蓝灰 女士最多的颜色是:黑蓝白咖
黑色基本占了所有数据的一半。
决策树分析
直接分析数据太大,内存不够。
办法:从上述分析大致找出主要影响因素,然后按统计的实体比例,以少量数据进行训练决策树模型
决策树构思:
主要影响因素 价格 品牌 发货地 销量 季节 材质 尺寸 颜色
从上述分析中模拟数据 按比例来设置各属性的独热编码 以少量数据来尝试训练出模型
价格 0-300 300以上 (昂贵0 便宜1)
品牌 占比百分之5以上 为一类 以下为一类 1:1 (大牌0 小众1)
销量 高于品牌平均销量 一类 以下一类 1:1 (高0 低1)
发货地 广东 浙江 福建 江苏 北京 上海 一类 其他一类 1:1 (沿海0 内陆1)
尺寸 M-3XL一类 其他一类 1:1 (正常0 偏大/小1)
颜色 黑白灰 一类 其他一类 1:1 (黑白灰0 其他1)
训练结果:
{‘价格’: {‘昂贵’: {‘销量’: {‘低’: ‘不买’, ‘高’: {‘品牌’: {‘大牌’: ‘买’, ‘小众’: {‘尺寸’: {‘偏大/小’: ‘买’, ‘正常’: ‘不买’}}}}}}, ‘便宜’: {‘品牌’: {‘大牌’: ‘买’, ‘小众’: {‘销量’: {‘低’: ‘不买’, ‘高’: ‘买’}}}}}}
Graphviz决策树可视化:
根据输出手写决策树模型如下: