Skip to content

Instantly share code, notes, and snippets.

@alfard
Last active January 1, 2016 03:39
Show Gist options
  • Save alfard/8087086 to your computer and use it in GitHub Desktop.
Save alfard/8087086 to your computer and use it in GitHub Desktop.
import pandas as pd
import numpy as np
import csv
import random
a=[]
#########################################################################
#f = open('/home/alfard/Documents/Kaggle/Facebook2/TrainClean.csv',"rb")
f = open('/home/ubuntu/TrainClean.csv',"rb")
fileopen = csv.reader(f,delimiter=',', quotechar='"')
p=0
for row in fileopen:
a.append(row)
#p=p+1
#print p
f.close()
###########################################################################
del a[0]
b = random.sample(a, 400000)
#a=[]
b=np.array(b)
###########################################################################
#b[:,0].astype(np.int32)
#b.sort(axis=0)
#b[:,0].astype(np.str)
#b=['24']
#b=np.array(b)
#b=b[(b[:,0].astype(np.int32)).argsort()]
##########################################################################
##### TITLE ##########################################
##########################################################################
from sklearn.feature_extraction.text import CountVectorizer
vectorizer=CountVectorizer(min_df=1)
X=vectorizer.fit_transform(b[:,1])
I=vectorizer.get_feature_names()
c=[]
for i in I:
c.append(i.encode('utf-8'))
###########################################################################
#np.where(pred=='7695860')
###########################################################################
##### TAGS ##################################################
###########################################################################
t=list(b[:,2])
###########################################################################
t0=[]
for i in range(0,len(t)):
t0.append(t[i].split(' ')[0])
t0=np.array(t0)
###########################################################################
t1=[]
for i in range(0,len(t)):
if len(t[i].split(' '))>1:
t1.append(t[i].split(' ')[1])
else:
t1.append('')
t1=np.array(t1)
###########################################################################
t2=[]
for i in range(0,len(t)):
if len(t[i].split(' '))>2:
t2.append(t[i].split(' ')[2])
else:
t2.append('')
t2=np.array(t2)
###########################################################################
t3=[]
for i in range(0,len(t)):
if len(t[i].split(' '))>3:
t3.append(t[i].split(' ')[3])
else:
t3.append('')
t3=np.array(t3)
##########################################################################
t4=[]
for i in range(0,len(t)):
if len(t[i].split(' '))>4:
t4.append(t[i].split(' ')[4])
else:
t4.append('')
t4=np.array(t4)
############################################################################
#################TEST TITLE ##########################################
############################################################################
A=[]
############################################################################
#f = open('/home/alfard/Documents/Kaggle/Facebook2/TestClean.csv',"rb")
f = open('/home/ubuntu/TestClean.csv',"rb")
fileopen = csv.reader(f,delimiter=',', quotechar='"')
p=0
for row in fileopen:
A.append(row)
#p=p+1
#print p
f.close()
###########################################################################
del A[0]
#B = random.sample(A, 200)
#A=[]
#B=np.array(B)
B=np.array(A)
A=[]
from sklearn.feature_extraction.text import CountVectorizer
vectorizer=CountVectorizer(min_df=1,vocabulary=c)
Z=vectorizer.fit_transform(B[:,0])
#############################################################################
### MODEL ############
#############################################################################
from sklearn.linear_model import SGDClassifier
from sklearn.externals import joblib
svc = SGDClassifier()
###########################################################################
###########################################################################
#########Prediction par ligne##############################################
print "Q1"
train=svc.fit(X,t0)
Q1=[]
a=0
b=20001
for i in range(0,100):
prediction0=svc.predict(Z[range(a,b),:])
#prediction0=list(prediction0)
#print i
Q1.extend(prediction0)
a=a+20001
b=b+20001
prediction0=svc.predict(Z[range(2000100,2013337),:])
Q1.extend(prediction0)
############################################################################
print "Q2"
train=svc.fit(X,t1)
Q2=[]
a=0
b=20001
for i in range(0,100):
prediction1=svc.predict(Z[range(a,b),:])
#prediction0=list(prediction0)
#print i
Q2.extend(prediction1)
a=a+20001
b=b+20001
prediction1=svc.predict(Z[range(2000100,2013337),:])
Q2.extend(prediction1)
#############################################################################
print "Q3"
train=svc.fit(X,t2)
Q3=[]
a=0
b=20001
for i in range(0,100):
prediction2=svc.predict(Z[range(a,b),:])
#prediction0=list(prediction0)
#print i
Q3.extend(prediction2)
a=a+20001
b=b+20001
prediction2=svc.predict(Z[range(2000100,2013337),:])
Q3.extend(prediction2)
##############################################################################
print "Q4"
train=svc.fit(X,t3)
Q4=[]
a=0
b=20001
for i in range(0,100):
prediction3=svc.predict(Z[range(a,b),:])
#prediction0=list(prediction0)
#print i
Q4.extend(prediction3)
a=a+20001
b=b+20001
prediction3=svc.predict(Z[range(2000100,2013337),:])
Q4.extend(prediction3)
############################################################################
print "Q5"
train=svc.fit(X,t4)
Q5=[]
a=0
b=20001
for i in range(0,100):
prediction4=svc.predict(Z[range(a,b),:])
#prediction0=list(prediction0)
#print i
Q5.extend(prediction4)
a=a+20001
b=b+20001
prediction4=svc.predict(Z[range(2000100,2013337),:])
Q5.extend(prediction4)
#############################################################################
prediction0=np.array(Q1)
prediction1=np.array(Q2)
prediction2=np.array(Q3)
prediction3=np.array(Q4)
prediction4=np.array(Q5)
predicted_obs=np.column_stack((prediction0,prediction1,prediction2,prediction3,prediction4))
predicted_obs=predicted_obs.astype(object)
predicted_obs[:,0] += " " + predicted_obs[:,1] + " " + predicted_obs[:,2] + " " + predicted_obs[:,3]+ " " + predicted_obs[:,4]
predicted_obs=predicted_obs[:,:1]
#############################################################################
###### RESULT ###############################################################
#############################################################################
A=[]
#f = open('/home/alfard/Documents/Kaggle/Facebook2/TestID.csv',"rb")
f = open('/home/ubuntu/TestID.csv',"rb")
fileopen = csv.reader(f,delimiter=',', quotechar='"')
p=0
for row in fileopen:
A.append(row[0])
#p=p+1
#print p
f.close()
############################################################################
del A[0]
b= np.array(A)
RESULTMP=np.column_stack((b,predicted_obs))
klk=dict(RESULTMP)
#Resultupdate=np.load('/home/alfard/Documents/Kaggle/Facebook2/Resultupdate.npz')
Resultupdate=np.load('/home/ubuntu/Resultupdate.npz')
#np.where(CommunIDTest=='6562016')
Resultupdate=Resultupdate['arr_0']
Resultupdate=dict(Resultupdate)
klk.update(Resultupdate)
RESULT=np.array(klk.items())
#np.where(pred=='7695860')
for i in range(0,len(RESULT)):
RESULT[i,1]='"'+RESULT[i,1]+'"'
############################################################################
#np.savetxt('/home/alfard/Documents/Kaggle/Facebook2/submissionSGDDUP3M.csv', RESULT, delimiter=',', fmt='%s,%s',header='"Id","Tags"', comments = '')
np.savetxt('/home/ubuntu/submission.csv', RESULT, delimiter=',', fmt='%s,%s',header='"Id","Tags"', comments = '')
###############################################################################
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment