├── README.md ├── classifiers.ipynb ├── test_data.csv └── training_data.csv /README.md: -------------------------------------------------------------------------------- 1 | # lapd-crime-classification-analysis 2 | 3 | The Times analyzed Los Angeles Police Department violent crime data from 2005 to 2012. Our analysis found that the Los Angeles Police Department misclassified an estimated 14,000 serious assaults as minor offenses, artificially lowering the city’s crime levels. 4 | 5 | This repository has an [ipython notebook](http://ipython.org/notebook.html) file to [demonstrate how we used two machine learning classifiers](https://github.com/datadesk/lapd-crime-classification-analysis/blob/master/classifiers.ipynb) to analyze more than 400,000 crimes -- records we obtained through a California public records request. We have also released two small slices of the data we used to [train](https://github.com/datadesk/lapd-crime-classification-analysis/blob/master/training_data.csv) and [test](https://github.com/datadesk/lapd-crime-classification-analysis/blob/master/test_data.csv) our models. 6 | -------------------------------------------------------------------------------- /classifiers.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# Checking the LAPD's crime classifications\n", 8 | "\n", 9 | "The Times analyzed Los Angeles Police Department violent crime data from 2005 to 2012. Our analysis found that the Los Angeles Police Department misclassified an estimated 14,000 serious assaults as minor offenses, artificially lowering the city’s crime levels.\n", 10 | "\n", 11 | "To conduct the analysis, The Times used an algorithm that combined two machine learning classifiers. Each classifier read in a brief description of the crime, which it used to determine if it was a minor or serious assault. You can see a [sample of the data here](https://github.com/datadesk/lapd-crime-classification-analysis/blob/master/training_data.csv). An example of a minor assault reads: \"VICTS AND SUSPS BECAME INV IN VERBA ARGUMENT SUSP THEN BEGAN HITTING VICTS IN THE FACE.\"" 12 | ] 13 | }, 14 | { 15 | "cell_type": "code", 16 | "execution_count": 1, 17 | "metadata": { 18 | "collapsed": true 19 | }, 20 | "outputs": [], 21 | "source": [ 22 | "import csv\n", 23 | "import nltk\n", 24 | "from nltk.util import ngrams\n", 25 | "from sklearn.svm import LinearSVC\n", 26 | "from sklearn.pipeline import Pipeline\n", 27 | "from nltk.classify import MaxentClassifier\n", 28 | "from nltk.stem.snowball import SnowballStemmer\n", 29 | "from nltk.classify.scikitlearn import SklearnClassifier\n", 30 | "from sklearn.feature_extraction.text import TfidfTransformer" 31 | ] 32 | }, 33 | { 34 | "cell_type": "markdown", 35 | "metadata": {}, 36 | "source": [ 37 | "## Stemming and stop words\n", 38 | "\n", 39 | "We're going to clean up the crime descriptions in two steps. First, we're going to [stem](https://en.wikipedia.org/wiki/Stemming) the words -- this reduces the words to their root in order to limit differences based on tense or whether they appear in the plural or possessive form. Then, we're going to strip out a custom list of [stop words](https://en.wikipedia.org/wiki/Stop_words)." 40 | ] 41 | }, 42 | { 43 | "cell_type": "code", 44 | "execution_count": 2, 45 | "metadata": { 46 | "collapsed": true 47 | }, 48 | "outputs": [], 49 | "source": [ 50 | "# Define a standard snowball stemmer\n", 51 | "STEMMER = SnowballStemmer('english')\n", 52 | "# Make a list of stopwords, including the stemmed versions\n", 53 | "# These are words that have no impact on the classification, and\n", 54 | "# can even occasionally mess up the classifier.\n", 55 | "STOPWORDS = [\n", 56 | " 'susp',\n", 57 | " 'susps',\n", 58 | " 's',\n", 59 | " 'v',\n", 60 | " 'in',\n", 61 | " 'ppa',\n", 62 | " 'vict',\n", 63 | " 'the',\n", 64 | " 'and',\n", 65 | " '&',\n", 66 | " '-s',\n", 67 | " 'after',\n", 68 | " 'for',\n", 69 | " 'heard',\n", 70 | " 'second',\n", 71 | " 'avoid',\n", 72 | " 'hold',\n", 73 | " 'holding',\n", 74 | " 'retrieved',\n", 75 | " 'battery',\n", 76 | " 'fist',\n", 77 | " 'of',\n", 78 | " 'to',\n", 79 | " 'a',\n", 80 | "]\n", 81 | "STOPWORDS += [STEMMER.stem(i) for i in STOPWORDS]\n", 82 | "STOPWORDS = list(set(STOPWORDS))" 83 | ] 84 | }, 85 | { 86 | "cell_type": "markdown", 87 | "metadata": {}, 88 | "source": [ 89 | "## Tokenize\n", 90 | "\n", 91 | "This is a function to take a description and break it up into the individual \"features\" we're going to use to classify it. We separate the description into individual words, then stem them and remove stop words. From there, we make a list of individual words and then combine them into [bigrams](https://en.wikipedia.org/wiki/Bigram)." 92 | ] 93 | }, 94 | { 95 | "cell_type": "code", 96 | "execution_count": 3, 97 | "metadata": { 98 | "collapsed": true 99 | }, 100 | "outputs": [], 101 | "source": [ 102 | "def tokenize(description):\n", 103 | " \"\"\"\n", 104 | " Takes LAPD description text, strips out unwanted words and text,\n", 105 | " and prepares it for the trainer.\n", 106 | " \"\"\"\n", 107 | " # first lower case and strip leading/trailing whitespace\n", 108 | " description = description.lower().strip()\n", 109 | " # kill the 'do-'s and any stray punctuation\n", 110 | " description = description.replace('do-', '').replace('.', '').replace(',', '')\n", 111 | " # make a list of words by splitting on whitespace\n", 112 | " words = description.split(' ')\n", 113 | " # Make sure each \"word\" is a real string / account for odd whitespace\n", 114 | " words = [STEMMER.stem(i) for i in words if i]\n", 115 | " words = [i for i in words if i not in STOPWORDS]\n", 116 | " # let's see if adding bigrams improves the accuracy\n", 117 | " bigrams = ngrams(words, 2)\n", 118 | " bigrams = [\"%s|%s\" % (i[0], i[1]) for i in bigrams]\n", 119 | " # bigrams = [i for i in bigrams if STEMMED_BIGRAMS.get(i)]\n", 120 | " # set up a dict\n", 121 | " out_dict = dict([(i, True) for i in words + bigrams])\n", 122 | " # The NLTK trainer expects data in a certain format\n", 123 | " return out_dict\n" 124 | ] 125 | }, 126 | { 127 | "cell_type": "markdown", 128 | "metadata": {}, 129 | "source": [ 130 | "## Grab the features\n", 131 | "\n", 132 | "Loop through our example CSV and grab the features we're going to use to train our classifiers." 133 | ] 134 | }, 135 | { 136 | "cell_type": "code", 137 | "execution_count": 4, 138 | "metadata": { 139 | "collapsed": false 140 | }, 141 | "outputs": [], 142 | "source": [ 143 | "# open our sample file and use the CSV module to parse it\n", 144 | "f = open('training_data.csv', 'rU')\n", 145 | "data = list(csv.DictReader(f))\n", 146 | "# Make an empty list for our processed data\n", 147 | "features = []\n", 148 | "# Loop through all the lines in the CSV\n", 149 | "for i in data:\n", 150 | " description = i.get('NARRATIVE')\n", 151 | " classification = i.get('classification')\n", 152 | " feats = tokenize(description)\n", 153 | " features.append((feats, classification))\n", 154 | "\n", 155 | "f.close()" 156 | ] 157 | }, 158 | { 159 | "cell_type": "code", 160 | "execution_count": 5, 161 | "metadata": { 162 | "collapsed": false, 163 | "scrolled": true 164 | }, 165 | "outputs": [ 166 | { 167 | "name": "stdout", 168 | "output_type": "stream", 169 | "text": [ 170 | "({u'kick|polic': True, u'use': True, u'his': True, u'leg': True, u'polic': True, u'under|arrest': True, u'right|leg': True, u'place|under': True, u'back': True, u'sergeant|back': True, u'arrest': True, u'right': True, u'place': True, u'sergeant': True, u'use|his': True, u'under': True, u'his|right': True, u'arrest|use': True, u'leg|kick': True, u'kick': True, u'polic|sergeant': True}, 'minor')\n" 171 | ] 172 | } 173 | ], 174 | "source": [ 175 | "# Here's what this looks like\n", 176 | "print features[0]" 177 | ] 178 | }, 179 | { 180 | "cell_type": "markdown", 181 | "metadata": {}, 182 | "source": [ 183 | "## Train the classifiers\n", 184 | "\n", 185 | "For this analysis we used two machine learning classifiers. The first is a linear [support vector machine](http://nlp.stanford.edu/IR-book/html/htmledition/support-vector-machines-the-linearly-separable-case-1.html) from the stellar [scikit-learn Python library](http://scikit-learn.org/stable/modules/generated/sklearn.svm.LinearSVC.html). The second is a [maximum entropy classifier](http://www.nltk.org/book/ch06.html#maximum-entropy-classifiers). For the official analysis I used the [MegaM](http://www.umiacs.umd.edu/~hal/megam/) optimization package to dramatically improve the training speed. Here, for simplicity, I'm using the NLTK built in trainer." 186 | ] 187 | }, 188 | { 189 | "cell_type": "code", 190 | "execution_count": 6, 191 | "metadata": { 192 | "collapsed": false 193 | }, 194 | "outputs": [ 195 | { 196 | "data": { 197 | "text/plain": [ 198 | "" 203 | ] 204 | }, 205 | "execution_count": 6, 206 | "metadata": {}, 207 | "output_type": "execute_result" 208 | } 209 | ], 210 | "source": [ 211 | "# Train our classifiers. Let's start with Linear SVC\n", 212 | "# Make a data prep pipeline\n", 213 | "pipeline = Pipeline([\n", 214 | " ('tfidf', TfidfTransformer()),\n", 215 | " ('linearsvc', LinearSVC()),\n", 216 | "])\n", 217 | "# make the classifier\n", 218 | "linear_svc = SklearnClassifier(pipeline)\n", 219 | "# Train it\n", 220 | "linear_svc.train(features)" 221 | ] 222 | }, 223 | { 224 | "cell_type": "code", 225 | "execution_count": 7, 226 | "metadata": { 227 | "collapsed": false, 228 | "scrolled": true 229 | }, 230 | "outputs": [ 231 | { 232 | "name": "stdout", 233 | "output_type": "stream", 234 | "text": [ 235 | " ==> Training (100 iterations)\n", 236 | "\n", 237 | " Iteration Log Likelihood Accuracy\n", 238 | " ---------------------------------------\n", 239 | " 1 -0.69315 0.500\n", 240 | " 2 -0.43483 0.970\n", 241 | " 3 -0.32266 0.990\n", 242 | " 4 -0.25840 0.990\n", 243 | " 5 -0.21623 1.000\n", 244 | " 6 -0.18624 1.000\n", 245 | " 7 -0.16375 1.000\n", 246 | " 8 -0.14621 1.000\n", 247 | " 9 -0.13215 1.000\n", 248 | " 10 -0.12061 1.000\n", 249 | " 11 -0.11097 1.000\n", 250 | " 12 -0.10279 1.000\n", 251 | " 13 -0.09577 1.000\n", 252 | " 14 -0.08967 1.000\n", 253 | " 15 -0.08432 1.000\n", 254 | " 16 -0.07959 1.000\n", 255 | " 17 -0.07538 1.000\n", 256 | " 18 -0.07161 1.000\n", 257 | " 19 -0.06821 1.000\n", 258 | " 20 -0.06513 1.000\n", 259 | " 21 -0.06232 1.000\n", 260 | " 22 -0.05976 1.000\n", 261 | " 23 -0.05741 1.000\n", 262 | " 24 -0.05524 1.000\n", 263 | " 25 -0.05324 1.000\n", 264 | " 26 -0.05139 1.000\n", 265 | " 27 -0.04966 1.000\n", 266 | " 28 -0.04805 1.000\n", 267 | " 29 -0.04655 1.000\n", 268 | " 30 -0.04514 1.000\n", 269 | " 31 -0.04383 1.000\n", 270 | " 32 -0.04258 1.000\n", 271 | " 33 -0.04142 1.000\n", 272 | " 34 -0.04031 1.000\n", 273 | " 35 -0.03927 1.000\n", 274 | " 36 -0.03828 1.000\n", 275 | " 37 -0.03735 1.000\n", 276 | " 38 -0.03646 1.000\n", 277 | " 39 -0.03561 1.000\n", 278 | " 40 -0.03481 1.000\n", 279 | " 41 -0.03404 1.000\n", 280 | " 42 -0.03331 1.000\n", 281 | " 43 -0.03261 1.000\n", 282 | " 44 -0.03194 1.000\n", 283 | " 45 -0.03130 1.000\n", 284 | " 46 -0.03069 1.000\n", 285 | " 47 -0.03010 1.000\n", 286 | " 48 -0.02953 1.000\n", 287 | " 49 -0.02899 1.000\n", 288 | " 50 -0.02847 1.000\n", 289 | " 51 -0.02797 1.000\n", 290 | " 52 -0.02748 1.000\n", 291 | " 53 -0.02702 1.000\n", 292 | " 54 -0.02657 1.000\n", 293 | " 55 -0.02613 1.000\n", 294 | " 56 -0.02571 1.000\n", 295 | " 57 -0.02531 1.000\n", 296 | " 58 -0.02492 1.000\n", 297 | " 59 -0.02454 1.000\n", 298 | " 60 -0.02417 1.000\n", 299 | " 61 -0.02382 1.000\n", 300 | " 62 -0.02347 1.000\n", 301 | " 63 -0.02314 1.000\n", 302 | " 64 -0.02281 1.000\n", 303 | " 65 -0.02250 1.000\n", 304 | " 66 -0.02219 1.000\n", 305 | " 67 -0.02190 1.000\n", 306 | " 68 -0.02161 1.000\n", 307 | " 69 -0.02133 1.000\n", 308 | " 70 -0.02106 1.000\n", 309 | " 71 -0.02079 1.000\n", 310 | " 72 -0.02053 1.000\n", 311 | " 73 -0.02028 1.000\n", 312 | " 74 -0.02004 1.000\n", 313 | " 75 -0.01980 1.000\n", 314 | " 76 -0.01957 1.000\n", 315 | " 77 -0.01934 1.000\n", 316 | " 78 -0.01912 1.000\n", 317 | " 79 -0.01890 1.000\n", 318 | " 80 -0.01869 1.000\n", 319 | " 81 -0.01849 1.000\n", 320 | " 82 -0.01828 1.000\n", 321 | " 83 -0.01809 1.000\n", 322 | " 84 -0.01790 1.000\n", 323 | " 85 -0.01771 1.000\n", 324 | " 86 -0.01753 1.000\n", 325 | " 87 -0.01735 1.000\n", 326 | " 88 -0.01717 1.000\n", 327 | " 89 -0.01700 1.000\n", 328 | " 90 -0.01683 1.000\n", 329 | " 91 -0.01667 1.000\n", 330 | " 92 -0.01650 1.000\n", 331 | " 93 -0.01635 1.000\n", 332 | " 94 -0.01619 1.000\n", 333 | " 95 -0.01604 1.000\n", 334 | " 96 -0.01589 1.000\n", 335 | " 97 -0.01575 1.000\n", 336 | " 98 -0.01560 1.000\n", 337 | " 99 -0.01546 1.000\n", 338 | " Final -0.01532 1.000\n" 339 | ] 340 | } 341 | ], 342 | "source": [ 343 | "# Next, let's do the Maximum Entropy\n", 344 | "maxent = MaxentClassifier.train(features)" 345 | ] 346 | }, 347 | { 348 | "cell_type": "markdown", 349 | "metadata": {}, 350 | "source": [ 351 | "## Testing the classifiers\n", 352 | "\n", 353 | "Now let's test these out! For this example we're only using a training sample of 100 crimes, which is not going to produce very accurate results. For our official analysis, we used a training sample of more than 20,000 crimes we reviewed as part of a previous story in 2014. We also chose to use two classifiers because, though they agreed on the vast majority of crimes, each classifier did a better job with some edge cases we didn't want to miss. You can check out the results below." 354 | ] 355 | }, 356 | { 357 | "cell_type": "code", 358 | "execution_count": 8, 359 | "metadata": { 360 | "collapsed": false 361 | }, 362 | "outputs": [ 363 | { 364 | "name": "stdout", 365 | "output_type": "stream", 366 | "text": [ 367 | "correct: minor | maxent: serious | linear svc: serious\n", 368 | "correct: minor | maxent: minor | linear svc: minor\n", 369 | "correct: minor | maxent: serious | linear svc: serious\n", 370 | "correct: serious | maxent: serious | linear svc: serious\n", 371 | "correct: serious | maxent: serious | linear svc: serious\n", 372 | "correct: minor | maxent: minor | linear svc: minor\n", 373 | "correct: minor | maxent: minor | linear svc: minor\n", 374 | "correct: minor | maxent: serious | linear svc: serious\n", 375 | "correct: serious | maxent: serious | linear svc: serious\n", 376 | "correct: minor | maxent: minor | linear svc: minor\n", 377 | "correct: minor | maxent: minor | linear svc: minor\n" 378 | ] 379 | } 380 | ], 381 | "source": [ 382 | "# Now, let's try these out\n", 383 | "test_data = list(csv.DictReader(open('test_data.csv', 'rU')))\n", 384 | "for i in test_data:\n", 385 | " description = i.get('NARRATIVE')\n", 386 | " classification = i.get('classification')\n", 387 | " toks = tokenize(description)\n", 388 | " # now grab the results of our classifiers\n", 389 | " maxent_class = maxent.classify(toks)\n", 390 | " svc_class = linear_svc.classify(toks)\n", 391 | " print('correct: %s | maxent: %s | linear svc: %s' % (classification, maxent_class, svc_class))" 392 | ] 393 | } 394 | ], 395 | "metadata": { 396 | "kernelspec": { 397 | "display_name": "Python 2", 398 | "language": "python", 399 | "name": "python2" 400 | }, 401 | "language_info": { 402 | "codemirror_mode": { 403 | "name": "ipython", 404 | "version": 2 405 | }, 406 | "file_extension": ".py", 407 | "mimetype": "text/x-python", 408 | "name": "python", 409 | "nbconvert_exporter": "python", 410 | "pygments_lexer": "ipython2", 411 | "version": "2.7.9" 412 | } 413 | }, 414 | "nbformat": 4, 415 | "nbformat_minor": 0 416 | } 417 | -------------------------------------------------------------------------------- /test_data.csv: -------------------------------------------------------------------------------- 1 | DR,crime_code,NARRATIVE,classification 2 | 120101236,626,DO-DEFT PUNCHED VICT IN HEAD AND SHOULDER AND DRAGGED VICT ON GROUND INTO THE ST CAUSING VISIBLE INJURY DEFT VICT FORMER COHABS,minor 3 | 120101237,624,"DO-S CHALLENGED V TO A FIGHT, AND THEN THREW A CANDY BAR AT V'S FACE, CAUSING AN ABRASION TO V'S MOUTH.",minor 4 | 120101249,626,DO-SUSP PULLED VICT HAIR AND NECK,minor 5 | 120101260,624,"DO-WHILE V WAS INSIDE THE RALPHS RESTROOM, S APPROACHED V FROM THE REAR, GRABBED V'S HAIR AND HIT V ON THE BACK W/ AN UNK METAL OBJECT.",serious 6 | 120101289,624,DO-V APPRCD S AND ASKD HIM TO LEAVE LOC V BEGAN TO WALK AWAY S STURCK V IN THE HEAD WITH GLASS BOTTLE,serious 7 | 120101295,626,DO-S AND V MARRIED FOR 4 YEARS DOES NOT COHAB S AND V INVOLVED IN DISPUTEPARTIES HIT EACH OTHER BUT NO VISIBLE INJURIES,minor 8 | 120101296,626,DO-S AND V HAVE BEEN MARRIED FOR 4YEARS NO CHILDREN DO NOT COHAB S AND V WERE INVOLVED IN DISPUTE S THREW FOOD AT VICT NO INJURIES,minor 9 | 120101305,624,DO-UNK SS CASUED CONTUSION AND LACERATION TO THE BACK OF VICTS HEAD BY UNKMEANS,minor 10 | 120101327,761,DO-SUSP PULLED KNIFE OUT OF HIS POCKET OPENED THE BLADE AND POINTED IT TOWARD VICT IN THREATENING MANNER,serious 11 | 120115044,624,DO-SUSP AND VICT IN VERBAL ARGUMENT SUSP SLAPPED VICT IN THE FACE,minor 12 | 120115049,624,DO-SUSP AND VICT IN VERBAL DISPUTE SUSP THEN PRODUCED A ROLLED UP POSTER AND STRUCK VICT ON THE FOREHEAD APPROX 10 TIMES SUSP FLED TO PARKING LOT,minor 13 | -------------------------------------------------------------------------------- /training_data.csv: -------------------------------------------------------------------------------- 1 | DR,crime_code,NARRATIVE,classification 2 | 120120958,623,DO-AFTER PLACING SUSP UNDER ARREST FOR PPA BATTERY SUSP USING HIS RIGHT LEG KICKED POLICE SERGEANT IN THE BACK,minor 3 | 120120929,624,DO-VICTS AND SUSPS BECAME INV IN VERBA ARGUMENT SUSP THEN BEGAN HITTING VICTS IN THE FACE,minor 4 | 120120928,624,DO-VICTS AND SUSPS BECAME INV IN VERBA ARGUMENT SUSP THEN BEGAN HITTING VICTS IN THE FACE,minor 5 | 121920543,624,DO-VICTIM SUSPECT INVOLVED IN ARGUMENT SUSPECT PUNCHED VICTIMS FACE TORSO,minor 6 | 121425107,624,DO-VICT AND SUSP ARE IN COHAB RELATIONSHIP VICT SLAPPED SUSP SUSP STRANGLED VICT FOR APPROX 1 SECOND NO INJURIES,minor 7 | 121425028,624,DO-VICT AND HUSBANC IN VERBAL ARGUMENT SUSP HIT VICT IN FACE,minor 8 | 120219177,624,DO-VICT ADVISED SUSP TO REMOVED PROP FROM THE SIDEWALK SUSP BEGAN TO YELL AT VICT AND THEN SPIT IN THE VICTS FACE,minor 9 | 121718378,624,DO-V WAS WALKING ON SIDEWALK WHEN S CONFRONTED HIM SUSPS APPROACHED PUNCHING AND KICKING VICT,minor 10 | 121425010,624,DO-V WAS PUSHED BY SUSP ON CHEST TWICE CAUSING V TO FALL TO GROUND SUSP FLED SB ON AIRPORT IN VEH,minor 11 | 120624680,624,DO-V IS SECURITY GUARD AT TACO BELL S THREW A CUP OF SODA IN VICTS FACE AFTER BEING TOLD TO LEAVE RESTAURANT,minor 12 | 122017931,624,DO-V IS S MOTHER S BECAME ANGRY AT V AND PUNCHED HER IN THE FACE TWICE CAUSING INJURY S FLED LOC IN UNK DIRECTION,minor 13 | 121223206,624,DO-UNK S ATTACKED V UNK OF ANY WEAPONS USED V UNCONSCIOUS AT HOSPITAL DUE TO MEDICATION UNABLE TO INTERVIEW,minor 14 | 121920552,624,DO-SUSPECT VICTIM INVOLVE IN ARGUMENT OVER STOLENPROP S THREW CUP OF SODA AT VICTIM HITTING HER ON NECK UPPER CHEST,minor 15 | 120323253,624,DO-SUSP WILLFULLY AND UNLAWFULLY WITH HIS RIGHT FIST PUNCHED VICT IN THE FACE,minor 16 | 120120930,624,DO-SUSP STURCK VICT TWICE WITH CLOSED FISTS ON RT SIDE OF FACE SUSP THEN FLED LOC IN UNK DIRECTION,minor 17 | 120120931,624,DO-SUSP STRUCK VICT ON FACE WITH CLOSED FISTS AFTER LOSING A LUNCH BET SUSP THEN FOLLOWED VICT TOWARDS PKG LOT N THREATENED TO CONTINUE HITTING VICT,minor 18 | 120322349,624,DO-SUSP STRUCK VICT IN FACE AND LEG WITH CLOSED FISTS LEAVING VISIBLE INJURIES SUSP FLED LOC IN UNK DIR,minor 19 | 121519621,624,DO-SUSP PUSHED VICT,minor 20 | 121425050,624,DO-SUSP ENTERED THE STORE AND BECAME INVOLVED W VICT SUSP BECAME ANGRY ANDTHREW THE CHOCOLATE CANDY AT THE VICT FACE,minor 21 | 121425051,624,DO-SUSP BEGAN YELLING AT V BECAUSE S WAS UNHAPPY THAT V ASKED HIM TO MOVE S PUNCHED V IN THE RIGHT CHECK W CLOSED FIST THEN FLED SB SPEEDWAY,minor 22 | 120120971,624,DO-SUSP APPROACHED VICT WHILE SHE WAS SEATED SUSP WAS FLEEING FROM SEC SUSP STROKED VICTS LEG AS HE PASSED BY VICT SUSP FLED LOC ON FOOT,minor 23 | 120219312,624,DO-SUSP APPROACHED VICT AND STRUCK HIM ON FACE SUSP GRABBED VICTS PHONE AND FLED LOC,minor 24 | 120624697,624,DO-SUSP APPROACHED VIC FROM BEHIND AND GRABBED HER VIC STRUGGLED TO BREAK SUSPS HOLD AND RECEIVED A LACERATION TO RT ARM BY UNK OBJ SUSP FLED ON FOOT,minor 25 | 120715966,624,DO-SUSP AND V ENGAGED IN DISPUTE SUSP BECAME ENRAGED AND STRUCK V IN THE FACE,minor 26 | 120715905,624,DO-SUSP AND V ENGAGED IN AN ARGUEMENT SUSP BECAME ANGRY AND GRABBED THE V BY THE ARM V PULLED AWAY CAUSING HERTO HIT HER HEAD,minor 27 | 120322340,624,DO-SUS AND VIC INVLVD IN ARGUMENT SUS SPIT IN VIC FACE,minor 28 | 121818522,624,DO-S2 ENTERED STORE TO REMOVED PROP AFTER BEING DETAINED BY V1 AND REGAINGSTORE PRO V1 TRIED TO DETAIN S2 FRONT LEAVING CAUSING S1 AND PEPER SPRAY THE,minor 29 | 121818523,624,DO-S2 ENTERED STORE TO REMOVED PROP AFTER BEING DETAINED BY V1 AND REGAINGSTORE PRO V1 TRIED TO DETAIN S2 FRONT LEAVING CAUSING S1 AND PEPER SPRAY THE,minor 30 | 121818524,624,DO-S2 ENTERED STORE TO REMOVED PROP AFTER BEING DETAINED BY V1 AND REGAINGSTORE PRO V1 TRIED TO DETAIN S2 FRONT LEAVING CAUSING S1 AND PEPER SPRAY THE,minor 31 | 121718357,624,DO-S1 PUSHED V TO THE GROUND S1 LEFT AND RETURNED WITH S2 S2 PUSHED V TOTHE GROUND SUSPS FLED ON FOOT,minor 32 | 122017979,624,DO-S WAS INVOLVED IN A PHYSICAL ALTERCATION WITH V S PUNCHED AND KICKED V ON THE CHEST AND LEG AREA S FLED TOWARD UNK LOCATION,minor 33 | 120600955,624,DO-S THREW BASKETBALL AT V STRIKING V FACE,minor 34 | 120120904,624,DO-S STRUCK V ON ARM WITH A WOODEN BROOM,minor 35 | 122017981,624,DO-S PUSHED V CAUSING V TO STEP BACK WHILE IN APARTMENT BULDING ELEVATOR,minor 36 | 121718727,624,DO-S GRABBED V WRIST AND PUSHED HER DOWN DURING VERBAL DISPUTE,minor 37 | 120624624,624,DO-S GOT IN ARGUMENT WITH V OVER BEING ASKED TO LEAVE S PUNCHED V 1 TIME WITH A CLOSED FIST S FLED LOC IN UNK DIR,minor 38 | 120219158,624,DO-S ENGAGED V IN VERBAL DISPUTE S THEN PUSHED V AND PUNCHED V ON RT CHEEKWITH CLOSED FIST,minor 39 | 120219160,624,DO-S ENGAGED V IN VERBAL DISPUTE S THEN PUSHED V,minor 40 | 120219159,624,DO-S ENGAGED V IN VERBAL DISPUTE S SMASHED V RT HAND IN DOOR V OPENED DOORAND FELL TO HER KNEES S THEN KNEED V ON RT BREAST,minor 41 | 121718488,624,DO-S CAME UP FROM BEHIND WHILE V WAS URINATING PLACED BOTH HANDS ON SHOULDERS AND SHOOK V HARD S THEN LEFT RESTROOM LAUGHING,minor 42 | 122017971,624,DO-S ARRIVED AT LOC AND BEGAN TO ARGUE WITH V S REPEATEDLY KICKED AND PUNCHED V S FLED LOC RETURNED AND AGAIN PUNCHED AND KICKED V,minor 43 | 122018572,624,DO-INCIDENT TO ARREST SUBJECT KICKED OFFICER IN THE TORSO,minor 44 | 120624648,624,DO-S APPROACHED V ON FOOT S PUNCHED AND KICKED V SEVERAL TIMES S RAN FROM LOC NB TO SANTA MONICA BLVD,minor 45 | 122017982,624,DO-S APPROACHED V AND PUSHED V V FELL BACK TOWARDS DOORWAY AND STRUCK HIS RIGHT ELBOW AS A RESULT,minor 46 | 120219211,624,DO-S AND V WERE IN A VERBAL DISPUTE OVER LAUNDRY MACHINE USE S GRABBED V LEFT ARM AGGRESSIVELY AND LEFT VISIBLE INJURY,minor 47 | 120219210,624,DO-S AND V INVOLVED IN A VERBAL DISPUTE S BECAME UPSET AND PUNCHED V ON HIS FOREHEAD S THEN ENTERED VEH AND FLED,minor 48 | 120715952,624,DO-S AND V GOT INTO VERBAL ARGUMENT S HIT V ON HEAD WITH OPEN HAND 14X,minor 49 | 121718394,624,DO-S AND V ARE ROOMMATES INVOLVED IN DISPUTE THAT ESCALATED TO PUSHING EACHOTHER CAUSING INJURY BOTH PARTIES REFUSED PPA OR MEDICAL TREATMENT,minor 50 | 121718393,624,DO-S AND V ARE ROOMMATES INVOLVED IN DISPUTE THAT ESCALATED TO PUSHING EACHOTHER CAUSING INJURY BOTH PARTIES REFUSED PPA OR MEDICAL TREATMENT,minor 51 | 121718360,624,DO-S AND V ARE ADULT SISTERS NOT LIVING TOGETHER BECAME INVOLVED IN A PHYSICAL FIGHT BOTH PARTIES REFUSED REPORT,minor 52 | 120415412,230,DO-VICTIM AND SUSP SO CALLED SIBLINGS INVOLVED IN VERBAL DISPUTE WHICH ESCALATED INTO PHYSICAL VIOLENCE SUSP STRUCK VICT WITH COFFEE CUP OVER HEAD,serious 53 | 120415375,230,DO-VICT STATED THAT SHE WAS INSIDE THE BAR WHEN SUSP APPROACHED HER AND HIT HER OVER LEFT EYE CAUSING APPROX 2 INCH LACERATION THEN FLED IN UNK DIR,serious 54 | 120415436,230,DO-VICT ATTENDED A PARTY IN THE AREA OF 4TH AND LORENA WHILE IN THE BACK YARD VICT HEARD ONE GUN SHOT THE VICT EHEN NOTICED HE WAS STRUCK BY A BULLET,serious 55 | 121616376,230,DO-UNK SUSPS STRUCK THE VICT IN THE HEAD DURING ALTERCATION AT PARTY RELATED TO GANG HOMICIDE DR 121616375,serious 56 | 121223225,230,DO-UNK SUSPS APPROCHED V WHILE V WAS SLEEPING INSIDE VEH UNK S FIRED 3-4 ROUNDS WITH UNK CAL HANDGUN S FLED LOCATION WB 77TH ST,serious 57 | 121223195,230,DO-SUSPS1-4 RODE ROGETHER ON BICYCLES SUSP1 ASKED VICT WHERE YOU FROM SUSP1 SHOT AT VICT STRIKING HIM IN GROIN SUSPS1-4 FLED NB,serious 58 | 120815596,230,DO-SUSP TURNED V KNIFE ON V ATT TO STAB V V PUSHED BACK GOT CUT SUSP HEADDBUTTED V BIT V AND FLED LOC IN UNK DIR BY VEH,serious 59 | 120624754,230,DO-SUSP THREW A GLASS BOTTLE AT VS HEAD AFTER V TOLD S NOT TO SPIT IN HIS DIRECTION,serious 60 | 120415387,230,DO-SUSP GRABBED THE BACK OF VICT NECK THEN PUSHED GARDEN SPEARS INTO VICT STOMACH,serious 61 | 121118825,230,DO-SUSP ENTERED RES WHILE VICT WAS INSIDE POURED GASOLINE INSIDE RES WHILESTATING IF YOURE NOT GOING TO LET ME IN ILL BURN YOU OUT VICT FLED,serious 62 | 121118826,230,DO-SUSP ENTERED RES WHILE VICT WAS INSIDE POURED GASOLINE INSIDE RES WHILESTATING IF YOURE NOT GOING TO LET ME IN ILL BURN YOU OUT VICT FLED,serious 63 | 121920539,230,DO-SUSP BECAME ANGRY AT THE VICT FOR LOOKING AT HIS GIRLFRIEND SUSP THEN HIT THE VICT ON THE HEAD AND IN THE FACE WITH A FLASHLIGHT,serious 64 | 120120917,230,DO-SUSP APPROACHED VICT FOR UNK REASON SUSP HIT VICT WITH BAT ON DEFT ARM VICT RAN AWAY FROM SUSP WOTHOUT FURTHER INC,serious 65 | 121425009,230,DO-SUSP AND VICT GOT INTO AN ARGUMENT SUSPS KNOCKED V UNCONSCIOUS WHILE VICT WAS ON THE GROUND SUSP KICKED V MULTIPLE TIMES SUSP FLED IN UNK DIRECTIN,serious 66 | 120715906,230,DO-S SLAMMED FRONT DRIVER DOOR OF HIS VEH AGAINST VICTS VEH AND SCRATCHED V VEH WITH A KEY SUSPECT THEN USED HIS VEH TO HIT VICTS VEH AND ATTEMPTED TO H,serious 67 | 121223172,230,DO-S CUT V WITH UNK SHARP OBJECT WHILE INVOLVED IN A FIST FIGHT,serious 68 | 121901502,230,DO-S AND V WERE INVOLVED IN A DISPUTE S GRABBED BOX CUTTER HELD IT TO V NECK AND STOMACH S THREATENED TO KILL V,serious 69 | 121223197,230,DO-S AND V WERE DRINKING TOGETHER S GOT UPSET AND STRUCK V IN FACE W GLASSCOKE BOTTLE S FLED NB ON VERMONT,serious 70 | 121616356,230,DO- SUSP APPROACHED VICTS VEH WHILE VICT WAS SEATED IN VEH SUSP OPENED DRIVER DOOR STRUCK VICT ON LEG W SHOTGUN BUTT AND YELLED LEAVE YOU BITCHES,serious 71 | 121119040,235,DO-S DISCIPLINE CHILD BY HITTING THEM WITH A WOODEN CHAIR,serious 72 | 121601306,230,DO-VICT IS THE SUSPS LANDLORD SUSP THREATENED TO KILL THE VICT AND THE VICTS FAMILY THEN STRUCK THE VICT IN THE BACK WITH A 2 X 4 AND BROKE VEH WINDOW,serious 73 | 120415437,230,DO-VICT CONTACTED PD FOR 507P NEIGHBOR SUSP BECAME UPSET ARGUMENT ENSURED SUSP ENTERED VICTS RES HIT VICT WITH BASEBALL BAT,serious 74 | 120219222,230,DO-VICT AND SUS BECAME ENGAGED IN A HEATED ARGUMENT SUS THEN THREW A WOODEN CHAIR AT VICT STRIKING HIM ON HIS RT ARM SUS THEN BRANDISHED A KNIFE,serious 75 | 120219198,230,DO-V AND S WERE INVOLVED IN A VERBAL DISPUTE WHICH ESCALATED INTO A PHYSICAL ALTERCATION THE S SLASHED V NOSE AND CHEEK WITH KNIFE,serious 76 | 121118812,230,DO-SUSP STRUCK VICT IN HEAD WITH BAR STOOL,serious 77 | 120322382,230,DO-SUSP PUNCHED VICT WITH FISTS AND HIT VICT IN THE HEAD WITH A DUMBBELL WHILE VICTS LAYED IN BED,serious 78 | 121818550,230,DO-SUSP FIRED APPX 7 SHOTS AT VICT SUSP IS EAST COAST CRIPP,serious 79 | 121818553,230,DO-SUSP DROVE UP IN A VEH SUSP 1 YELLED OUT FUCK TOAST FLORENCIA AND SHOT APPX 4 SHOTS AT V STRICKG V IN BODY SUSP FLED LOC IS 97TH ST EAST COAST CRIP,serious 80 | 120219242,230,DO-SUSP 1 AND SUSP2 ASSULTED VICT 1 AND 2 WITH BROKEN GLASS BOTTLE VICT 1 IN CRTICAL CONDITION VICT 2 HAS LACERATIONS ON HIS NECK,serious 81 | 120219240,230,DO-SUSP 1 AND SUSP2 ASSULTED VICT 1 AND 2 WITH BROKEN GLASS BOTTLE VICT 1 IN CRTICAL CONDITION VICT 2 HAS LACERATIONS ON HIS NECK,serious 82 | 120401162,230,DO-SUSP 1 AND SUSP 2 EXITED FROM PARKED VEH AND RAN TO FRONT OF VICTS LOC S1 STATED WHERE YOU FROM S1 AND 2 FIRED 7 ROUNDS AT VICTS STRIKING VICT 3 TIMES,serious 83 | 121920565,230,DO-S1 WENT TO V RESD TO CONFRONT HIM REGARDING A PRIOR ALTERCATION WHEN VSTEPPED OUT S1 STRUCK HIM WITH A LARGE FLASHLIGHT ON THE HEAD S2 BEGAN STIKING,serious 84 | 120219247,230,DO-S1 THRU S7 PHYSICALLY ASSAULTED VICT UNTIL VICT WAS LEFT UNCONSCIOUS SUSPS FLED IN UNK DIR IN UNK VEH,serious 85 | 121223247,230,DO-S1 APPROACHED THE V AND FIRED A HANDGUN AT THE V V1 WAS STRUCK BY ONE OF THE BULLETS,serious 86 | 121223243,230,DO-S PUNCHED KICKED AND STRANGLED VICTIM,serious 87 | 121223253,230,DO-S DROVE UP TO THE V INFRONT OF HIS BUSINESS AND STATED YOU BITCH NIGGERDIDNT I TELL YALL TO GET OFF THE BLOCK S THEN POINTED A GUN AT THE V THEN FLED,serious 88 | 122018078,230,DO-S APPROACHED V AND SWING A METAL STEERING WHEEL LOCKING DEVICE AT V HEAD BARELY MISSING S S THEN FLED IN VEHICLE FROM SCENE,serious 89 | 121519584,230,DO-S AND V GOT INTO ARGUMENT OVER V RELATIONSHIP W CURRENT GIRLFRIEND WHO WAS W S EXGIRLFRIEND S USED KITCHEN KNIFE AND STABBED V MULTIPLE TIMES IN ABDOM,serious 90 | 122116807,236,DO-S AND V ENGAGED IN ARGUMENT V THROWS ALCOHOL BEN AND BOILING WATER AT S S PUNCHEDS V IN FACE LEAVING VISIBLE INJURY,serious 91 | 121718564,236,DO-S AND V ENGAGE IN ARGUMENT AS V WALKS AWAY S PUSHES V FROM BEHIND CAUSING V TO FALL FORWARD INTO GLASS WINDOW V HAS VISIBLE INJURIES TO BOTH ARMS,serious 92 | 121223263,251,DO-UNK SFIRED NUMEROUS ROUNDS AT V HOUSE FROM A SEMI AUTO PISTOL S FLED NBWESLEY AVE THEN WB VERNON ON A MOUNTAIN BIKE,serious 93 | 121801355,251,DO-SUSPS SHOT FROM THEIR VEH INTON AN INHABITED DWELLING AND FLED LOC,serious 94 | 120501354,230,"DO-VICT WALKING DOWN STREET, HEARD GUNSHOTS, BEGAN TO RUN, HEARD ADDITIONAL SHOTS AND REALIZED HE WAS STRUCK",serious 95 | 120200644,230,DO-VICT AND SUSP ENGAGED IN VERBAL ARGUEMENT WHEN SUSP ARMED HIMSELF WITH HANDGUN AND POINTED IT TO THE VICT HEAD SUSP THEN FLED LOC,serious 96 | 122018067,230,DO-UNKNOWN SUSPECTS USED UNKNOWN GUN AND FIRED THREE TO SIX SHOTS TOWARDS THE VICTIM STRIKCING HIM IN THE HEAD,serious 97 | 121818601,230,DO-UNK SUSPS SHOT AS VICTIM STRIKING HIM IN BUTTOCKS AREA,serious 98 | 121425131,230,DO-UNK S APPRO V FROM BEHIND AND STRUCK V ON BACK OF HEAD WITH GLASS CUP AND FLED LOC,serious 99 | 121320530,230,DO-SUSPS DRIVING WB VERNON AV APP V 1 AT BUS BENCH ON NEC OF VERNON AND BROADWAY SUSPS AND V EXCHANGE WORDS S1 FIRED APPROX 10 SHOTS HIT VICTS SUSPS FL,serious 100 | 121017265,230,DO-SUSP RAMMED VEH INTO REAR END OF VICTS VEH,serious 101 | 120219317,230,DO-SUSP PULLED VICT OF A COUCH AND STRUCK HIM ON THE HEAD WITH A BOTTLE,serious 102 | --------------------------------------------------------------------------------