Python 日記 #2 — 拘置所での独房監禁

Feb 01 2023
Python を学ぶにあたっての私の経験、考え、苦労を詳しく綴る Python 日記シリーズの第 2 回目です。過去 10 年間、厳しい生活を送ってきた人でない限り、Python はデータ サイエンス業界の定番となったプログラミング言語です。

Python を学ぶにあたっての私の経験、考え、苦労を詳しく綴る Python 日記シリーズの第 2 回目です。

Unsplash の Grant Durr による写真

過去 10 年間、厳しい生活を送ってきた人でない限り、Python はデータ サイエンス業界の定番となったプログラミング言語です。Python の学習は、しばらく私のやるべきことリストに載っていたものですが、スペインでの非常勤講師のおかげで、ようやくPythonの学習に取り組む余裕ができました。

近年、Python を採用する雇用主が増えています。R と比較して、Python は大規模なWeb アプリケーション、深層学習、機械学習に適していると読んだことがあります。私は機械学習に興味があり、新しいテクニックやテクノロジを学びたいという全体的な願望があるため、Python を少し知っていることが興味深いだけでなく必要であるように思えます。

注:結局のところ、プログラミングに関する完全な選択の自由があると仮定すると、答えは一般に単純です。それは問題ではありません。道具はあくまでも道具ですので、目的や状況に応じて慎重に選択する必要があります。

このプロジェクトでは、次のコンセプトを実践しました。

  • Jupyter ノートブックの作成
  • .csv ファイルのインポート
  • パッケージのインストールとインポート (Pandas、Numpy、Matplotlib、Seaborn)
  • クリーニングデータ
  • データの操作
  • 基本的な推論統計分析の実行
  • データの要約
  • データの視覚化 (ヒストグラム、棒グラフ、箱ひげ図)
  • コメントの作成
  • 設定データの表示形式
  • データのサブセット化

米国の拘置所における独房監禁に関するデータを、インターネット上から興味深く有用なデータセットを見つけることを目的とした週刊ニュースレター「Data is Plural 」から見つけました。

データの操作

ここでは、まず上位 20 か国の受刑者の市民権数を見つけることで、既存のデータを簡単に操作しました。次に、特定の市民権の普及状況をよりよく把握するために、これらの数をパーセンテージに変換しました。たとえば、このデータセットでは、メキシコ国籍が拘置所の受刑者の 3 分の 1 以上を占めています。ジャマイカ市民権の普及率 (3.11%) も私には際立っていました。次に、同じ情報を視覚化する簡単な棒グラフを作成しました。

データの要約

下の画像は、対象変数「days_solitary」の概要統計の詳細を示しています。独房に入れられている平均期間は32.72日である。中央値は20日です。平均値と中央値が大きく異なるため、分布が正しく偏っている可能性があります。言い換えれば、独房で多くの時間を過ごしている受刑者の中には、平均時間を押し上げている人もいるということだ。この広がりは独房での0日から781日まで続きます。

「days_solitary」の概要統計

データの視覚化 (ヒストグラム、棒グラフ、箱ひげ図)

ここでの最初の視覚化はヒストグラムです。これは本質的に上記の要約統計量を画像で表現したものです。変数「days_solitary」の分布は右に偏っています。これは、短期間独房に入れられていた受刑者が多数いる一方で、長期間独房に入れられている受刑者が少数であることを意味します。分布が右に偏っているため、外れ値が平均を引き上げているため、平均が中央値よりも大きいことを意味します。

2 番目の画像は密度プロットで、基本的にヒストグラムを平滑化し、独房の日数の相対密度を示します。3 番目の画像は、2 番目の画像を 1 番目の画像に重ねて、簡単に比較できるようにします。

以下は、受刑者が独房に入れられたさまざまな理由の数を示すグラフです。懲戒理由が理由の大多数を占めており、「保護拘留: その他の被拘禁者の安全」が 2 番目に多いことがわかります。誰かが独房に入れられる可能性がある膨大な数の医学的理由が私には印象に残ります。

以下は、Seaborn を使用して作成された同じ棒グラフで、各州の受刑者の数を示しています。データセット内で最も多くの受刑者がいるのはカリフォルニアで、次にテキサス、アリゾナ、ジョージアが続いていることがわかります。2 つの棒グラフの唯一の違いは、左側の棒グラフにはデフォルトのカラーリングテーマがあり、右側の棒グラフにはカスタムメイドのカラーリングテーマがあることです。ここでの目標は、Seaborn で作成できるテーマについてさらに詳しく知ることでした。一般的な経験則として、私は自分の作品をより理解しやすいものにするために、色覚異常に優しいカラー パレットを使用するように努めています。

左: デフォルトのテーマ、右: カスタムテーマ

下の写真の箱ひげ図では、独房での日数が州によって異なるかどうかを確認する目的で、Seaborn を使用して、囚人が拘留されている州ごとにグループ化しました。州ごとに、受刑者が独房に入れられる時間に関して異なる法律がある可能性があります。

一般的な感想:

前回の Python 日記の後、すぐに地理空間分析や線形回帰に取り組みたかったのですが、より複雑な内容に進む前に、まず Python の基本的な概念に慣れたほうが良いことに気づきました。

データサイエンスの世界に飛び込み、素晴らしいライブラリやテクニックをすべて学ぶことにとても興奮しました。しかし、これらのライブラリの使用を考える前に、基本をしっかり理解する必要があることにすぐに気づきました。データ サイエンスに関しては、多くの STEM 分野と同様に、基本を理解することは家の基礎のようなものです。基礎が弱いと家の他の部分が崩れてしまいます。しかし、しっかりとした基礎があれば、どんなものでも構築することが可能です。

このデータセットを使用して人々やコミュニティを支援できる可能性があるため、このデータセットを扱うのは本当にやりがいがありました。データ サイエンスは、特に拘置所での独房監禁などの複雑な問題を分析する場合に、社会的利益を促進するための強力なツールとなり得ます。データ サイエンティストは、機械学習や統計分析などの手法を使用することで、他の方法では気づかれないパターンや洞察を明らかにできます。たとえば、独房の状況では、データ サイエンスを使用して、個人が孤立して過ごす時間の長さ、精神的健康への影響、精神的健康への影響など、独房の状況と結果に関する大量のデータを分析できます。独房監禁と再犯の相関関係。結果として、この情報は、独房の使用を減らし、収監されている人々の状況を改善することを目的とした政策や権利擁護活動に情報を提供するために使用できます。さらに、データ サイエンスを使用して、これらの取り組みの有効性を長期的に監視および評価することもできます。

今、私は初めてのエントリーレベルのデータサイエンスの仕事を探しているところですが、Python の基礎に焦点を当てて練習してきたスキルが役に立つと確信しています。

Python 日記 #3 で学びたいこと:

次回は、地理空間データをいじったり、単純な線形回帰を実行したりして、Python スキルを次のレベルに引き上げたいと考えています。

私のコードを見たいですか? → GitHub

私の過去の経験を見たいですか?→リンクトイン