淘宝大数据的游戏,我重新提高自己的思维方式,

插件和代码前前后后写在六个版本,但最好的结果其实是我的第一次2第二码。这让我很惊讶,

但它也说明了一个问题。当你更熟悉的语言,当一方,你缺少的是其他的知识,

  1. 首先是我的数学知识,在分析用户行为时,我们知道浏览次数和购买次数是由一定规律的,这个方面找了数学系的同学问了一些,得到的结论是:你能够进行线性拟合。这是最简单的,可是得到的结果不一定真实,于是推荐我使用高斯分布来做。可是由于自己单枪匹马,所以选了比較简单的线性拟合
  2. 心理学,我们能够从数据中发现。那些常常在淘宝买东西的假设是时间间隔一段就买了同一种商品的,那说明这个人的属于死宅之类的,由于这些东西一般我们旁边就有,还有,就是浏览次数和购买之间的关系,用数学来解答,心理学来分析。多天浏览和购买的关系,
先意淫这些吧,下来上三个版本号的代码:
第一版本号,简单推測浏览十五次购买一次:
import time

u_id=[]
b_id=[]
t_id=[]
b_time=[]
t_num0=0
t_num1=0
t_num2=0
t_num3=0
a=True
i=0
j=0
fileread=open('t_alibaba_data.csv','r')
while True:
fileline=fileread.readline()
# print type(fileline)
# print fileline,
# print i
filedian =fileline.find(r',')
filedian1=fileline.rfind(r',') b_id1=fileline[filedian+1:filedian1-2]
b_id.append(b_id1) u_id1=fileline[:filedian]
u_id.append(u_id1) t_id1=fileline[filedian1-1:filedian1]
t_id.append(t_id1) b_time1=fileline[filedian1:-2]
b_time.append(b_time1) if not fileline:
break
output=open('taobao.txt','a')
#print u_id
#print b_id
#print t_id
print b_time ff=0
while True:
if u_id[i]==u_id[i+1]: if ff==0: output.write(u_id[i])
output.write(' ')
ff=ff+1
if b_id[i]==b_id[i+1]: if int(t_id[i])==0:
t_num0=t_num0+1
elif int(t_id[i])==1:
t_num1=t_num1+1
elif int(t_id[i])==2:
t_num2=t_num2+1
else:
t_num3=t_num3+1
else:
j=j+1
print u_id[i],b_id[i],t_num0,t_num1,t_num2,t_num3
if t_num0>=15 or t_num1>=1 :
output.write(b_id[i])
output.write(",")
# else:
# output.write(b_id[i])
# output.write(',')
t_num0=0
t_num1=0
t_num2=0
t_num3=0 # else:
else:
output.write('\n')
ff=0
# print u_id[i],b_id[i],t_num0,t_num1,t_num2,t_num3
i=i+1


第二版本号,观察时间和购买行为
#coding:utf-8
import time u_id=[]
b_id=[]
t_id=[]
b_time=[]
t_num0=0
t_num1=0
t_num2=0
t_num3=0
b_num1=0
b_time4=0
a=True
i=0
j=0
fileread=open('t_alibaba_data.csv','r')
while True:
fileline=fileread.readline()
# print type(fileline)
# print fileline,
# print i
filedian =fileline.find(r',')
filedian1=fileline.rfind(r',') b_id1=fileline[filedian+1:filedian1-2]
b_id.append(b_id1) u_id1=fileline[:filedian]
u_id.append(u_id1) t_id1=fileline[filedian1-1:filedian1]
t_id.append(t_id1) b_time1=fileline[filedian1:-2]
b_time.append(b_time1) if not fileline:
break
output=open('taobao.txt','a')
#print u_id
#print b_id
#print t_id
#print b_time ff=0
while True:
if u_id[i]==u_id[i+1]: if ff==0: output.write(u_id[i])
output.write(' ')
ff=ff+1
if b_id[i]==b_id[i+1]: if int(t_id[i])==0:
t_num0=t_num0+1
elif int(t_id[i])==1:
t_num1=t_num1+1
elif int(t_id[i])==2:
t_num2=t_num2+1
elif b_time[i]!=b_time[i+1]:
b_time4=b_time4+1
else:
t_num3=t_num3+1
else:
j=j+1
b_num1=b_num1+1
print u_id[i],b_id[i],t_num0,t_num1,t_num2,t_num3,b_time4
if t_num0>=15 and t_num1==0:
output.write(b_id[i])
output.write(",")
if b_time4>=2 and t_num1==0:
output.write(b_id[i])
output.write(',')
if t_num0>15 and t_num1>=2:
output.write(b_id[i])
output.write(',')
if t_num2>=1 and t_num1==0:
output.write(b_id[i])
output.write(',')
if len(b_id)<=3:
output.write(b_id[i])
output.write(',') # if b_num1<=3:
# output.write(b_id[i])
# output.write(',')
#
#
t_num0=0
t_num1=0
t_num2=0
t_num3=0
b_time4=0 # else:
else:
output.write('\n')
b_num1=b_num1+1
# print u_id[i],b_id[i],t_num0,t_num1,t_num2,t_num3
i=i+1
b_num1=0


第三版本号,使用数学分析
#coding:utf-8
import time
import numpy as np
from scipy import optimize
from math import sqrt u_id=[]
b_id=[]
t_id=[]
b_time=[]
t_num0=0 #类型
t_num1=0
t_num2=0
t_num3=0
b_num1=0 #品牌个数
b_time4=0 #时间
a=True
i=0
j=0
fileread=open('t_alibaba_data.csv','r')
while True:
fileline=fileread.readline()
# print type(fileline)
# print fileline,
# print i
filedian =fileline.find(r',')
filedian1=fileline.rfind(r',') b_id1=fileline[filedian+1:filedian1-2]
b_id.append(b_id1) u_id1=fileline[:filedian]
u_id.append(u_id1) t_id1=fileline[filedian1-1:filedian1]
t_id.append(t_id1) b_time1=fileline[filedian1:-2]
b_time.append(b_time1) if not fileline:
break
output=open('taobao.txt','a')
#print u_id
#print b_id
#print t_id
#print b_time
t_num00=[]
t_num11=[]
t_num22=[]
t_num33=[]
t_time44=[]
cc=0
ff=0
pp=0
while True:
if u_id[i]==u_id[i+1]: if ff==0: output.write(u_id[i])
output.write(' ')
ff=ff+1
if b_id[i]==b_id[i+1]:
# cc=cc+1
if int(t_id[i])==0:
t_num0=t_num0+1
elif int(t_id[i])==1:
t_num1=t_num1+1
elif int(t_id[i])==2:
t_num2=t_num2+1
else:
t_num3=t_num3+1
if b_time[i]!=b_time[i+1]:
# print b_time4
b_time4=b_time4+1
else:
j=j+1
# b_num1=b_num1+1
# print u_id[i],b_id[i],t_num0,t_num1,t_num2,t_num3,b_time4
# if b_time4>=3:
# print b_time4
# pp=pp+1
# 数据拟合分析部分 t_num00.append(t_num0)
t_num11.append(t_num1)
t_num22.append(t_num2)
t_num33.append(t_num3)
t_time44.append(b_time4) # if t_num0>=10 :
# output.write(b_id[i]) #看了15次的没有买的
# output.write(",")
# elif b_time4>=3 :
# output.write(b_id[i]) #多天看的,没有买
# output.write(',')
# # if t_num0>15 and t_num1>=2:
# # output.write(b_id[i])
# # output.write(',')
# elif t_num2>=1 :
# output.write(b_id[i]) #收藏出可是没有买
# output.write(',')
# elif t_num3>=1 : #放进购物车可是没有买
# output.write(b_id[i])
# output.write(',')
# # if b_time4>=2 and t_num1>=2:
# # output.write(b_id[i])
# # output.write(',')
# #
# elif t_num1>=1:
# output.write(b_id[i]) #买过两次
# output.write(',')
# # if len(b_id)<=3:
# output.write(b_id[i])
# output.write(',') # if b_num1<=3:
# output.write(b_id[i])
# output.write(',')
#
#
t_num0=0
t_num1=0
t_num2=0
t_num3=0
b_time4=0
# elif b_num1<=3 and ff!=0:
# print b_id[i]
# output.write(b_id[i])
# output.write('\n')
# ff=0
## else:
elif not u_id[i+1]:
break
# else:
#
# output.write('\n')
# ff=0
# print u_id[i],b_id[i],t_num0,t_num1,t_num2,t_num3
i=i+1
b_num1=0 #分析浏览次数和购买的关系
y=np.array(t_num00)
x=np.array(t_num11) def residuals(p):
k,b=p
return y-(k*x-b) r=optimize.leastsq(residuals,[1,0])
k,b=r[0]
print "K=",k,"b=",b #分析收藏和购买的关系
x22=np.array(t_num22) def residuals(p):
k,b=p
return y-(k*x22-b) r=optimize.leastsq(residuals,[1,0])
k22,b22=r[0]
print "Kt_num22=",k22,"b22=",b22 #分析购物车和购买的关系
x33=np.array(t_num33) def residuals(p):
k,b=p
return y-(k*x33-b) r=optimize.leastsq(residuals,[1,0])
k33,b33=r[0]
print "kt_num33=",k33,"b33=",b33
#查看天数和购物关系
x44=np.array(t_time44) def residuals(p):
k,b=p
return y-(k*x44-b) r=optimize.leastsq(residuals,[1,0])
k44,b44=r[0]
print "ktime=",k44,"b44=",b44 print pp
#def sim_pearson()


python购物淫秽数据分析(2)的更多相关文章

  1. Python金融大数据分析PDF

    Python金融大数据分析(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1CF2NhbgpMroLhW2sTm7IJQ 提取码:clmt 复制这段内容后打开百度网盘 ...

  2. Python爬虫与数据分析之爬虫技能:urlib库、xpath选择器、正则表达式

    专栏目录: Python爬虫与数据分析之python教学视频.python源码分享,python Python爬虫与数据分析之基础教程:Python的语法.字典.元组.列表 Python爬虫与数据分析 ...

  3. Python爬虫与数据分析之模块:内置模块、开源模块、自定义模块

    专栏目录: Python爬虫与数据分析之python教学视频.python源码分享,python Python爬虫与数据分析之基础教程:Python的语法.字典.元组.列表 Python爬虫与数据分析 ...

  4. Python爬虫与数据分析之进阶教程:文件操作、lambda表达式、递归、yield生成器

    专栏目录: Python爬虫与数据分析之python教学视频.python源码分享,python Python爬虫与数据分析之基础教程:Python的语法.字典.元组.列表 Python爬虫与数据分析 ...

  5. Python运用于数据分析的简单教程

    Python运用于数据分析的简单教程 这篇文章主要介绍了Python运用于数据分析的简单教程,主要介绍了如何运用Python来进行数据导入.变化.统计和假设检验等基本的数据分析,需要的朋友可以参考下 ...

  6. python中pandas数据分析基础3(数据索引、数据分组与分组运算、数据离散化、数据合并)

    //2019.07.19/20 python中pandas数据分析基础(数据重塑与轴向转化.数据分组与分组运算.离散化处理.多数据文件合并操作) 3.1 数据重塑与轴向转换1.层次化索引使得一个轴上拥 ...

  7. 《Python金融大数据分析》高清PDF版|百度网盘免费下载|Python数据分析

    <Python金融大数据分析>高清PDF版|百度网盘免费下载|Python数据分析 提取码:mfku 内容简介 唯一一本详细讲解使用Python分析处理金融大数据的专业图书:金融应用开发领 ...

  8. python金融大数据分析PDF高清完整版免费下载|百度云盘|Python基础教程免费电子书

    点击获取提取码:7k4b 内容简介 唯一一本详细讲解使用Python分析处理金融大数据的专业图书:金融应用开发领域从业人员必读. Python凭借其简单.易读.可扩展性以及拥有巨大而活跃的科学计算社区 ...

  9. 【转帖】Python在大数据分析及机器学习中的兵器谱

    Flask:Python系的轻量级Web框架. 1. 网页爬虫工具集 Scrapy 推荐大牛pluskid早年的一篇文章:<Scrapy 轻松定制网络爬虫> Beautiful Soup ...

随机推荐

  1. spring整合JMS - 基于ActiveMQ实现

    一. 开篇语 继上一篇apache ActiveMQ之初体验后, 由于近期一直在复习spring的东西, 所以本文就使用spring整合下JMS. 二. 环境准备 1. ActiveMQ5.2.0 ( ...

  2. Meteor全栈开发平台

    Meteor全栈开发平台 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博客地址为http://www.cnblogs.com/jasonno ...

  3. 第三十 访问财富进退自如 —Spring交易管理

    6月16日本,明确. "应该留给追穷寇勇,不可沽名学霸王.天若有情天亦老,人间正道是沧桑." 有始有终.有往有还.进退自如乃Spring事务管理之道,也是万物生生不息.和谐共处之道 ...

  4. (大数据工程师学习路径)第一步 Linux 基础入门----简单的文本处理

    介绍 这一节我们将介绍这几个命令tr(注意不是tar),col,join,paste.实际这一节是上一节关于能实现管道操作的命令的延续,所以我们依然将结合管道来熟悉这些命令的使用. 一.常用的文本处理 ...

  5. ElasticSearch实战

    ElasticSearch实战-入门 1.概述 今天接着<ElasticSearch实战-日志监控平台>一文来给大家分享后续的学习,在<ElasticSearch实战-日志监控平台& ...

  6. C++ 之 exception

    本文讲关于C++的异常的全部东西: 绝对不让异常逃离析构函数 阻止exception逃离析构函数,主要是两个原因: 1 防止在异常处理过程中的栈展开行为时,将调用terminate函数.程序将会结束, ...

  7. html + CSS

    Html 1 html基本标签 1.1 html文件结构 <!DOCTYPE html PUBLIC "-//W3C//DTDXHTML 1.0 Transitional//EN&qu ...

  8. flume日志采集

    1.  Log4j Appender 1.1.  使用说明 1.1.2.  Client端Log4j配置文件 (黄色文字为需要配置的内容) log4j.rootLogger=INFO,A1,R # C ...

  9. OOP 创建对象的7种方式

    JavaScript OOP 创建对象的7种方式   我写JS代码,可以说一直都是面向过程的写法,除了一些用来封装数据的对象或者jQuery插件,可以说对原生对象了解的是少之又少.所以我拿着<J ...

  10. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(19)-用户信息的修改和浏览

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(19)-用户信息的修改和浏览  ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    ...