Python Diaries # 2 - Isolamento in strutture di detenzione

Feb 01 2023
La seconda puntata dei Python Diaries, una serie in cui descrivo in dettaglio le mie esperienze, i miei pensieri e le mie lotte per imparare Python. A meno che tu non abbia vissuto sotto una roccia negli ultimi dieci anni, Python è un linguaggio di programmazione che è diventato un settore di base della scienza dei dati.

La seconda puntata dei Python Diaries, una serie in cui descrivo in dettaglio le mie esperienze, i miei pensieri e le mie lotte per imparare Python.

Foto di Grant Durr su Unsplash

A meno che tu non abbia vissuto sotto una roccia negli ultimi dieci anni, Python è un linguaggio di programmazione che è diventato un settore di base della scienza dei dati. Imparare Python è qualcosa che avevo nella mia lista delle cose da fare da un po', e finalmente ho il tempo libero per dedicarmi a studiarlo, grazie al mio lavoro di insegnante part-time in Spagna!

Negli ultimi anni, i datori di lavoro hanno iniziato ad abbracciare Python in numero crescente. Ho letto che, rispetto a R, Python è più adatto per applicazioni web su larga scala , deep learning e machine learning . Il mio interesse per l'apprendimento automatico e il mio desiderio generale di apprendere nuove tecniche e tecnologie fanno sembrare che conoscere un po' di Python sarebbe non solo intrigante ma necessario!

Nota: alla fine della giornata, supponendo di avere completa libertà di scelta per la programmazione, la risposta è generalmente semplice: non importa! Gli strumenti non sono altro che strumenti , quindi dovrebbero essere scelti con attenzione a seconda dello scopo e della situazione.

In questo progetto, ho messo in pratica i seguenti concetti:

  • Creazione di un notebook Jupyter
  • Importazione di un file .csv
  • Installazione e importazione di pacchetti (Pandas, Numpy, Matplotlib, Seaborn)
  • Dati di pulizia
  • Manipolare i dati
  • Esecuzione di analisi statistiche inferenziali di base
  • Dati riassuntivi
  • Visualizzazione dei dati (istogramma, grafico a barre, box plot)
  • Creazione di commenti
  • Impostazione della formattazione della visualizzazione dei dati
  • Sottoinsiemi di dati

Ho trovato dati sull'isolamento nelle strutture di detenzione negli Stati Uniti da Data is Plural , una newsletter settimanale con l'obiettivo di trovare set di dati interessanti e utili da Internet.

Manipolazione dei dati

Qui, ho manipolato rapidamente i dati esistenti trovando prima i conteggi della cittadinanza dei detenuti per i primi 20 paesi. Quindi, ho convertito quei conteggi in percentuali per avere una visione migliore sulla prevalenza di determinate cittadinanze. Ad esempio, la cittadinanza messicana costituisce più di un terzo dei detenuti delle strutture di detenzione in questo set di dati! Mi ha colpito anche la prevalenza della cittadinanza giamaicana (3,11%). Quindi, ho creato un rapido grafico a barre visualizzando le stesse informazioni.

Dati riassuntivi

L'immagine sottostante mostra in dettaglio le statistiche riassuntive della nostra variabile di interesse 'days_solitary'. La quantità media di tempo in isolamento è di 32,72 giorni. La mediana è di 20 giorni. Poiché i valori medi e mediani sono così diversi, è probabile che vi sia una distribuzione distorta a destra. In altre parole, ci sono alcuni detenuti che trascorrono molto tempo in isolamento che stanno aumentando la quantità media di tempo. Lo spread va da 0 giorni a 781 giorni in isolamento.

Statistiche di riepilogo per 'days_solitary'

Visualizzazione dei dati (istogramma, grafico a barre, box plot)

La prima visualizzazione che abbiamo qui è un istogramma, che è essenzialmente una rappresentazione grafica delle statistiche di riepilogo di cui sopra. La distribuzione della variabile 'giorni_solitari' è distorta verso destra, il che significa che ci sono molti detenuti che sono stati in isolamento per brevi periodi di tempo, mentre c'erano alcuni detenuti che sono stati in isolamento per lunghi periodi di tempo. Poiché la distribuzione è distorta a destra, ciò significa che la media è maggiore della mediana, perché i valori anomali stanno aumentando la media.

La seconda immagine è un grafico di densità, che essenzialmente appiana l'istogramma e mostra la densità relativa del numero di giorni in isolamento. La terza immagine sovrappone la seconda immagine alla prima in modo che possano essere confrontate facilmente.

Di seguito è riportato un grafico che illustra i conteggi per i diversi motivi per cui un detenuto è stato posto in isolamento. Vediamo che i motivi disciplinari costituiscono la maggioranza dei motivi, mentre "Custodia protettiva: sicurezza di altri detenuti" è il secondo conteggio più alto. Mi colpisce il gran numero di motivi medici per cui qualcuno potrebbe essere messo in isolamento.

Di seguito è riportato lo stesso grafico a barre creato utilizzando Seaborn che rappresenta il numero di detenuti in ogni stato. Vediamo che la California ha il maggior numero di detenuti nel set di dati, seguita da Texas, Arizona e Georgia. L'unica differenza tra i due grafici a barre è che quello a sinistra ha il tema di colorazione predefinito mentre quello a destra ha un tema di colorazione personalizzato. Qui, l'obiettivo era conoscere meglio i temi che avrei potuto creare con Seaborn! Come regola generale, cerco di attenermi a tavolozze di colori compatibili con i daltonici, in modo che il mio lavoro possa essere più accessibile.

A sinistra: tema predefinito, a destra: tema personalizzato

Nel boxplot nella foto sotto, ho usato Seaborn per raggruppare i detenuti in base allo stato in cui sono detenuti con l'intenzione di vedere se il numero di giorni in isolamento varia a seconda dello stato. È possibile che stati diversi abbiano leggi distinte riguardanti la quantità di tempo che un detenuto può trascorrere in isolamento.

Riflessioni generali:

Dopo gli ultimi Python Diaries, volevo passare immediatamente all'analisi geospaziale o alle regressioni lineari, ma mi sono reso conto che sarebbe stato meglio prendere confidenza con i concetti di base di Python prima di passare a qualcosa di più complicato.

Ero così entusiasta di immergermi nel mondo della scienza dei dati e apprendere tutte le fantastiche librerie e tecniche. Ma ho subito capito che prima ancora di poter pensare all'utilizzo di quelle librerie, dovevo avere una solida conoscenza delle basi. Quando si tratta di scienza dei dati, proprio come molti campi STEM, comprendere le basi è come le fondamenta di una casa. Se le fondamenta sono deboli, il resto della casa crollerà. Ma con una solida base, è possibile costruire qualsiasi cosa.

È stato davvero gratificante lavorare con questo set di dati a causa di tutti i potenziali modi in cui può essere utilizzato per aiutare le persone e le comunità. La scienza dei dati può essere un potente strumento per promuovere il bene sociale, soprattutto quando si tratta di analizzare questioni complesse come l'isolamento nelle strutture di detenzione. Utilizzando tecniche come l'apprendimento automatico e l'analisi statistica, i data scientist possono scoprire modelli e intuizioni che altrimenti potrebbero passare inosservati. Ad esempio, nel contesto dell'isolamento, la scienza dei dati può essere utilizzata per analizzare grandi quantità di dati sulle condizioni e gli esiti di questa pratica, come il periodo di tempo che le persone trascorrono in isolamento, l'impatto sulla loro salute mentale e il correlazione tra isolamento e recidiva. Di conseguenza, queste informazioni possono essere utilizzate per informare gli sforzi politici e di advocacy volti a ridurre l'uso dell'isolamento e migliorare le condizioni di coloro che sono incarcerati. Inoltre, la scienza dei dati può essere utilizzata anche per monitorare e valutare l'efficacia di questi sforzi nel tempo.

Ora che sono alla ricerca del mio primo lavoro di data science di livello base, so che le competenze che ho esercitato concentrandomi sulle basi di Python mi aiuteranno!

Cosa voglio imparare per Python Diaries #3:

La prossima volta, voglio portare le mie abilità Python al livello successivo armeggiando con i dati geospaziali o eseguendo semplici regressioni lineari .

Vuoi vedere il mio codice? → GitHub

Vuoi vedere le mie esperienze passate? → Linkedin