In [90]:
import matplotlib
matplotlib.use('TkAgg')
%matplotlib inline
import matplotlib.pyplot as plt
plt.plot([1, 2, 3], [0, 3, 7])
plt.show()
In [91]:
import pandas as pd
import csv
import numpy as np
from math import sqrt
from sklearn.feature_extraction.text import CountVectorizer
countVector = CountVectorizer(min_df=1)
import re
In [92]:
# Gautam's video input
with open('./data/RAW_abhyudaya/final_gb1.csv') as f:
reader = csv.reader(f)
affectivavideooutput = list(reader)
with open('./data/RAW_abhyudaya/final_gb4.csv') as f:
reader = csv.reader(f)
affectivavideooutput2 = list(reader)
with open('./data/RAW_abhyudaya/final_gb6.csv') as f:
reader = csv.reader(f)
affectivavideooutput3 = list(reader)
with open('./data/RAW_abhyudaya/final_gb7.csv') as f:
reader = csv.reader(f)
affectivavideooutput4 = list(reader)
affectivavideooutput2.pop(0)
affectivavideooutput3.pop(0)
affectivavideooutput4.pop(0)
print len(affectivavideooutput)
affectivavideooutput.extend(affectivavideooutput2)
print len(affectivavideooutput)
affectivavideooutput.extend(affectivavideooutput3)
print len(affectivavideooutput)
affectivavideooutput.extend(affectivavideooutput4)
print len(affectivavideooutput)
print affectivavideooutput[0]
In [93]:
affectivavideooutput.pop(0)
affectivadataframe = pd.DataFrame(affectivavideooutput,
columns = ['', 'TimeStamp', 'interocularDistance', 'glasses', 'pitch', 'yaw', 'roll', 'joy',
'fear', 'disgust', 'sadness', 'anger', 'surprise', 'contempt', 'valence',
'engagement', 'smile', 'innerBrowRaise', 'browRaise', 'browFurrow', 'noseWrinkle',
'upperLipRaise', 'lipCornerDepressor', 'chinRaise', 'lipPucker', 'lipPress',
'lipSuck', 'mouthOpen', 'smirk', 'eyeClosure', 'attention', 'eyeWiden',
'cheekRaise', 'lidTighten', 'dimpler', 'lipStretch', 'jawDrop', 'relaxed',
'smiley', 'laughing', 'kissing', 'disappointed', 'rage', 'smirk.1', 'wink',
'stuckOutTongueWinkingEye', 'stuckOutTongue', 'flushed',
'scream', 'frustrated', 'tired', 'engaged', 'class'])
affectivadataframe[0:10]
#drop the columns that are outright irrelevant for data analysis
affectivadataframe = affectivadataframe.drop(['','TimeStamp'],axis=1)
#affectivadataframe[-10:]
print len(affectivadataframe)
In [94]:
import statsmodels.api as sm
X= affectivadataframe[['smile','innerBrowRaise','browRaise', 'browFurrow', 'noseWrinkle', 'upperLipRaise',
'lipCornerDepressor', 'chinRaise', 'lipPucker', 'lipPress', 'lipSuck',
'mouthOpen', 'smirk', 'eyeClosure', 'attention', 'eyeWiden', 'cheekRaise',
'lidTighten', 'dimpler', 'lipStretch', 'jawDrop','engaged','frustrated','tired']].copy()
for column in X.columns:
X[column]=X[column].apply(lambda x:float(x.replace('"','').replace("\n",'').replace('nan','')))
X['engaged'] = X['engaged'].apply(lambda x:int(x))
X['frustrated'] = X['frustrated'].apply(lambda x:int(x))
X['tired'] = X['tired'].apply(lambda x:int(x))
In [95]:
import sklearn.utils
df = sklearn.utils.shuffle(X)
df = df.reset_index(drop=True)
df[0:10]
Out[95]:
In [96]:
df[14500:
]
Out[96]:
In [97]:
dftrain = df[0:13182]
dftest = df[13184:14646]
print len(dftrain)
In [98]:
from sklearn.preprocessing import StandardScaler
explanatoryStd = dftrain[['smile','innerBrowRaise', 'browRaise', 'browFurrow', 'noseWrinkle', 'upperLipRaise',
'lipCornerDepressor', 'chinRaise', 'lipPucker', 'lipPress', 'lipSuck',
'mouthOpen', 'smirk', 'eyeClosure', 'eyeWiden', 'cheekRaise',
'lidTighten', 'dimpler', 'lipStretch', 'jawDrop']].copy()
X_std = StandardScaler().fit_transform(explanatoryStd)
backtodf = pd.DataFrame(X_std, index=explanatoryStd.index, columns=explanatoryStd.columns)
Dependent = dftrain['frustrated']
logit = sm.Logit(Dependent,backtodf)
result = logit.fit()
print(result.summary())
In [99]:
from sklearn import metrics
from math import sqrt
from ggplot import *
count1 = 0
count0 = 0
count = 0
sum1 = 0.0
#dftest_std = StandardScaler().fit_transform(X_std = StandardScaler().fit_transform(explanatoryStd))
per = result.predict(dftest[['smile','innerBrowRaise', 'browRaise', 'browFurrow', 'noseWrinkle', 'upperLipRaise',
'lipCornerDepressor', 'chinRaise', 'lipPucker', 'lipPress', 'lipSuck',
'mouthOpen', 'smirk', 'eyeClosure', 'eyeWiden', 'cheekRaise',
'lidTighten', 'dimpler', 'lipStretch', 'jawDrop']] )
fpr, tpr, pr = metrics.roc_curve(dftest['frustrated'], per)
df = pd.DataFrame(dict(fpr=fpr, tpr=tpr))
ggplot(df, aes(x='fpr', y='tpr')) +\
geom_line() +\
geom_abline(linetype='dashed')
Out[99]:
In [100]:
from numpy import *
import math
import matplotlib.pyplot as plt
#print 1-fpr
plt.plot(pr,1-fpr,'r',label= 'specificity')
plt.plot(pr,tpr,'b',label= 'sensivity')
plt.legend()
Out[100]:
In [101]:
auc = metrics.auc(fpr,tpr)
print auc
In [102]:
for i in pr:
if i > 1:
print i
In [103]:
from sklearn.preprocessing import StandardScaler
explanatoryStd = dftrain[['smile','innerBrowRaise', 'browRaise', 'browFurrow', 'noseWrinkle', 'upperLipRaise',
'lipCornerDepressor', 'chinRaise', 'lipPucker', 'lipPress', 'lipSuck',
'mouthOpen', 'smirk', 'eyeClosure', 'eyeWiden', 'cheekRaise',
'lidTighten', 'dimpler', 'lipStretch', 'jawDrop']].copy()
X_std = StandardScaler().fit_transform(explanatoryStd)
backtodf = pd.DataFrame(X_std, index=explanatoryStd.index, columns=explanatoryStd.columns)
Dependent = dftrain['engaged']
logit = sm.Logit(Dependent,backtodf)
result = logit.fit()
print(result.summary())
In [104]:
from sklearn import metrics
from math import sqrt
from ggplot import *
count1 = 0
count0 = 0
count = 0
sum1 = 0.0
per = result.predict(dftest[['smile','innerBrowRaise', 'browRaise', 'browFurrow', 'noseWrinkle', 'upperLipRaise',
'lipCornerDepressor', 'chinRaise', 'lipPucker', 'lipPress', 'lipSuck',
'mouthOpen', 'smirk', 'eyeClosure', 'eyeWiden', 'cheekRaise',
'lidTighten', 'dimpler', 'lipStretch', 'jawDrop']] )
fpr, tpr, pr = metrics.roc_curve(dftest['engaged'], per)
df = pd.DataFrame(dict(fpr=fpr, tpr=tpr))
ggplot(df, aes(x='fpr', y='tpr')) +\
geom_line() +\
geom_abline(linetype='dashed')
Out[104]:
In [105]:
from numpy import *
import math
import matplotlib.pyplot as plt
#print 1-fpr
plt.plot(pr,1-fpr,'r',label= 'specificity')
plt.plot(pr,tpr,'b',label= 'sensitivity')
plt.legend()
Out[105]:
In [77]:
from sklearn.preprocessing import StandardScaler
explanatoryStd = dftrain[['innerBrowRaise', 'browRaise', 'browFurrow', 'noseWrinkle', 'upperLipRaise',
'lipCornerDepressor', 'chinRaise', 'lipPucker', 'lipPress', 'lipSuck',
'mouthOpen', 'smirk', 'eyeClosure', 'eyeWiden', 'cheekRaise',
'lidTighten', 'dimpler', 'lipStretch', 'jawDrop']].copy()
X_std = StandardScaler().fit_transform(explanatoryStd)
backtodf = pd.DataFrame(X_std, index=explanatoryStd.index, columns=explanatoryStd.columns)
Dependent = dftrain['tired']
logit = sm.Logit(Dependent,backtodf)
result = logit.fit()
print(result.summary())
In [106]:
auc = metrics.auc(fpr,tpr)
print auc
In [107]:
from sklearn import metrics
from math import sqrt
from ggplot import *
count1 = 0
count0 = 0
count = 0
sum1 = 0.0
per = result.predict(dftest[['smile','innerBrowRaise', 'browRaise', 'browFurrow', 'noseWrinkle', 'upperLipRaise',
'lipCornerDepressor', 'chinRaise', 'lipPucker', 'lipPress', 'lipSuck',
'mouthOpen', 'smirk', 'eyeClosure', 'eyeWiden', 'cheekRaise',
'lidTighten', 'dimpler', 'lipStretch', 'jawDrop']] )
fpr, tpr, pr = metrics.roc_curve(dftest['tired'], per)
df = pd.DataFrame(dict(fpr=fpr, tpr=tpr))
ggplot(df, aes(x='fpr', y='tpr')) +\
geom_line() +\
geom_abline(linetype='dashed')
Out[107]:
In [108]:
auc = metrics.auc(fpr,tpr)
print auc
In [ ]: