python PR

Pythonでデータ分析を始めよう!挫折しない実践ガイドでスキルアップ

python データ分析
記事内に商品プロモーションを含む場合があります

pythonを使ってデータ分析をできる様になりたい。

一からpythonを学び始めてデータ分析ができるようになるのか知りたい

こういった疑問に答えます

筆者について

2021年から本格的にPython学習を始め、今ではPythonによる収益化に成功

大学院時代には、R言語とPythonを使って統計処理を行っていたため、Pythonを使ったデータサイエンスの知識が豊富

医療データを機械学習を用いて解析したり、学会発表も行なっている

Pythonで機械学習に学んで実装してみよう

Pythonで機械学習を始めたい方は、こちらを参考にしてください

【実践済み】未経験者がPythonで機械学習を独学で学ぶ方法
【実践済み】未経験者がPythonで機械学習を独学で学ぶ方法Pythonの学習を始める理由に、機械学習をやりたい!AI開発をしてみたい!という方が多いと思います。私もPythonの学習に踏み切ったのは、機械学習やAI開発を行うことができるからです。しかし、ゼロからPythonの機械学習を学ぶとなると、結構大変です。 そこで、この記事では、Pythonで機械学習を独学で習得する方法について、解説をしていきます。今回紹介する方法は、実際に私が実践してきた方法になりますので、ぜひ参考にしてみてください。...

Pythonでデータ分析を行うまでの流れを知る

Pythonでデータ分析を行うまでの流れを知る

Pythonを使ってデータ分析を行うためには、pythonでデータ分析を行うまでの流れを知りましょう

大まかな流れとしては

  • -データの読み込み
  • -データの加工
  • -データの統計処理
  • -データの可視化
  • -モデルの作成
  • モデルの評価
  • モデルの可視化

となります

一つずつ解説していきますが、必要のない部分は飛ばして行っても大丈夫です

モデルの作成以降は、機械学習の分野になってきますが、Pythonでデータ分析を行うのであれば、機械学習も身につけておいた方が、これからの時代に重宝されます

データの読み込み

データの読み込みデータ分析を行うためのデータを読み込みましょう

読み込むには以下のコードを使用すればOKです

今回はseabornに含まれているirisのデータを使って統計解析を行なってみたいと思います

import pandas as pd
import seaborn as sns
sns.set()
iris = pd.read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv')
print(iris.head())

>>>   
sepal_length  sepal_width  petal_length  petal_width species
0           5.1          3.5           1.4          0.2  setosa
1           4.9          3.0           1.4          0.2  setosa
2           4.7          3.2           1.3          0.2  setosa
3           4.6          3.1           1.5          0.2  setosa
4           5.0          3.6           1.4          0.2  setosa

データの加工

データの加工実際のデータになると欠損値が含まれていたり、不要なデータが含まれていることがあります

欠損値を削除するには以下のコードを使用すればOKです

irisデータでは欠損値がないので、コードの意味だけ理解しておきましょう

iris.dropna(how='any')

欠損値の処理として、引数を変更することで削除するものが変わってきます

  • dropna(how=’all’):すべての値が欠損値である行・列を削除
  • dropna(how=’any’):欠損値が1つでも含まれる行・列を削除
  • dropna(how=’thresh’):欠損値ではない要素の数に応じて行・列を削除
  • dropna(subset=[‘name’]):特定の行・列に欠損値がある行・列を削除

統計処理を行う前に、ここでデータの分布を確認しておきます

正規性の検定と呼ばれるものです

コードはこちらでOKです

import pandas as pd
import seaborn as sns
sns.set()
from scipy import stats

iris = pd.read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv')
A=iris.iloc[:,2]
B=iris.iloc[:,3]
result=stats.shapiro(A)
result=stats.shapiro(B)

詳細はこちらの記事を参考にしてください

python 正規性の検定
【pythonで統計学】正規性の検定(シャピロウィルク検定etc)のかけ方~サンプルコード付き~t検定などの統計手法をかける場合には、まずそのデータが正規分布しているかを調べなくてはいけません。正規性を確認する方法の一つに、ヒストグラムを書いて目視で確認する、という方法がありますが、これだけでは正確ではありません。 そこで、「Q-Qプロット」や「シャピロウィルク検定」「コルモゴロフスミルノフ検定」などを使用して、正規性を確認していきます。 実際に統計をかける場合には、csvやexcelデータなどを読み込んで、統計にかけることが多いと思います。そこで今回は、pythonを使ってcsvから取り込んだデータで正規性の検定を行う方法について、解説していきたいと思います。...

データの統計処理

データの統計処理データ整形が終わったら、実際に統計処理を行います

今回は2群比較をしたいと思います

正規性の確認をしていますが、今回はノンパラメトリック検定を行います

対応しているデータの場合には、ウィルコクソンの符号付き順位検定をかけます

import pandas as pd
import seaborn as sns
sns.set()
from scipy import stats

iris = pd.read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv')
A=iris.iloc[:,2]
B=iris.iloc[:,3]
result=stats.wilcoxon(A, B, alternative='two-sided')

対応していないデータの場合には、マンホイットニーのU検定をかけます

import pandas as pd
import seaborn as sns
sns.set()
from scipy import stats

iris = pd.read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv')
A=iris.iloc[:,2]
B=iris.iloc[:,3]
result=stats.mannwhitneyu(A, B, alternative='two-sided')

データの対応の有無については、こちらを確認してください

>>>データの対応の有無とは?(…coming soon…)

それ以外の統計検定については、こちらを参考にしてください

python 統計学
pythonで統計学を学ぶメリット〜実際の学習手順を紹介〜近年、データサイエンティストの需要が高まってきていますが、データサイエンティスト必須能力として、「プログラミング言語」「統計学」が挙げられています。pythonで統計学を扱えれば、データサイエンティストとしての道も開けるでしょう。今回はpythonで統計学を学ぶメリットや実際にどのように学習していくべきかを解説していきたいと思います。...

データの可視化

データの可視化統計処理まで終わったら、データの可視化を行います

seabornを使用した方が綺麗なグラフを作成することができるので、seabornを使用していきます

from matplotlib import pyplot as plt
import seaborn as sns; sns.set()
#あらかじめ用意されているirisのデータを使用
iris = sns.load_dataset('iris') 
sns.distplot(
    iris['sepal_width'], bins=13, label='data',
    kde=False,
    rug=False
)
plt.legend() # 凡例を表示
plt.show()   # ヒストグラムを表示

また、平均値を算出して、それをグラフ化するには以下のコードを入力します

from matplotlib import pyplot as plt
import seaborn as sns; sns.set()
import pandas as pd
#あらかじめ用意されているirisのデータを使用
iris = sns.load_dataset('iris') 
sepal_length=iris.iloc[:,0]
sepal_width=iris.iloc[:,1]
print(sepal_length.mean(),sepal_width.mean())
data=[["iris",sepal_length.mean(),sepal_width.mean()]]
df=pd.DataFrame(data,columns=["name","sepal_length","sepal_width"]) 

color=["r","b"]
df.plot(x="name",y=["sepal_length","sepal_width"],kind="bar",color=color,figsize=(4,3))
 
plt.show()

可視化の詳細は、以下の記事で解説をしています

python データ分析 可視化
pythonでデータ分析から可視化まで行う【サンプルコード付き】pythonで統計学をかけたり、前処理などを行なっても、誰もがわかる状態にはなっていません。誰もが見ただけでわかるようにするためには「可視化」をする必要があります。今回の記事ではseabornを使用した可視化の方法について解説をしていきたいと思います。...

モデルの作成

続いて、モデルの作成を行なっていきます

そもそもモデルって何?というところからですが、モデルというのは、入力されたデータを解析し、評価・判定を行う過程になります

例えば、大量の受信メールの中から、特定のフレーズやワードを学習し、迷惑メールに振り分ける、といった過程があった場合、特定のフレーズやワードを学習するのがモデルになります機械学習モデルについて

機械学習の学習モデルはいくつかあります

  • 線形回帰
  • 正則化
  • サポートベクターマシン(SVM)
  • 決定木・ランダムフォレスト
  • k近傍法
  • ロジスティック回帰
  • ニューラルネットワーク
  • クラスタリング
  • 次元削減 (PCA : 主成分分析)
  • DQN

上記の学習モデルをおおまかに分けると、次のようになります

今回は線形回帰のサンプルコードを提示します

機械学習の分類
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error, r2_score

# サンプルデータの作成
np.random.seed(0)
X = np.random.rand(100, 1)
y = 2 * X + 1 + 0.1 * np.random.randn(100, 1)

# データを訓練データとテストデータに分割
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 線形回帰モデルのインスタンスを作成
model = LinearRegression()

# モデルの訓練
model.fit(X_train, y_train)

# モデルの予測
y_pred = model.predict(X_test)

# モデルの評価
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print(f"Mean squared error: {mse:.2f}")
print(f"R2 score: {r2:.2f}")

# 結果の可視化
plt.scatter(X_test, y_test, color='blue', label='Actual')
plt.scatter(X_test, y_pred, color='red', label='Predicted')
plt.plot(X_test, y_pred, color='red')
plt.legend()
plt.xlabel('X')
plt.ylabel('y')
plt.show()
線形回帰

モデルの評価

機械学習のモデル評価は、さまざまな方法があります

線形回帰のサンプルコードでは、平均二乗誤差とR2スコアを算出しています

1.分類問題の評価指標:

  • 正解率 (Accuracy)
  • 適合率 (Precision)
  • 再現率 (Recall)
  • F1スコア (F1 Score)
  • AUC-ROCカーブ (Area Under the Receiver Operating Characteristic Curve)

2.回帰問題の評価指標:

  • 平均二乗誤差 (Mean Squared Error, MSE)
  • 平均絶対誤差 (Mean Absolute Error, MAE)
  • R2スコア (R-squared, Coefficient of Determination)

3.クラスタリング問題の評価指標:

  • シルエットスコア (Silhouette Score)
  • カルインスキ・ハラバスズ指数 (Calinski-Harabasz Index)
  • デイビス・ボールドイン指数 (Davies-Bouldin Index)

モデルの可視化

最後に機械学習モデルの可視化を行なっていきます

可視化を行うには、matplotlibやseabornを使用するのが一般的です

サンプルコードで提示している線形回帰もmatplotlibで可視化をしています

可視化を行うメリットとして、モデルの理解や解釈を容易にすることができます

機械学習モデルの可視化には、matplotlibやseaborn以外にも、決定木を可視化する「dtreeviz」というライブラリもあり、このような可視化を行うことができます

決定木の可視化

pythonでデータ分析を行うための環境構築をする

pythonでデータ分析を行うための環境構築をする

Pythonでデータ分析を行うためには、まず環境構築をする必要があります

データ分析を行うのであれば、Anacondaを使用するのがおすすめです

Anacondaの詳細は以下の記事を参考にしてください

anacondaの構築方法
Pythonの環境構築〜Anacondaとは?〜サンプルコードと図解付きPythonの環境構築を調べると、「Anaconda」という文字を見かけるかと思います。 僕も最初はよくわからなくて、とりあえずwebサイトに書いてある通りに進めていきました。 そのおかげもあり、3回ほど環境構築で挫折をしました。 現在はAnacondaを使ってpythonの学習を進めています。 なので、今回はAnacondaの環境構築について解説をしていこうと思います。 この記事を読んでいるかたが迷子にならないように、画像付きで解説していこうと思いますので、最後までお付き合いください。...

Anacondaのインストール

Anacondaのインストール

Anacondaの起動

「Launhpad」から「Anaconda-Navigator」を起動します

anaconda-navigator

下記のような画面が表示されたら、起動完了となります。

anaconda-navigatorの起動

Anacondaをインストールするには、下記のサイトから行います

https://www.anaconda.com/products/individual

anacondaインストールdownloadをクリック
anacondaインストール2続けるをクリック
anacondaインストール3続けるをクリック
anacondaインストール4続けるをクリック
anacondaインストール5同意するをクリック
anacondaインストール6特定のディスクにインストールを選択
anacondaインストール7続けるをクリック
anacondaインストール8インストールをクリック
anacondaインストール9インストールが完了するのを待ちます
anacondaインストール10続けるをクリック
anacondaインストール11閉じるをクリック

Anacondaの起動

「Launhpad」から「Anaconda-Navigator」を起動します

anaconda-navigator

下記のような画面が表示されたら、起動完了となります。

anaconda-navigatorの起動

spyderの導入

spyderの導入

Anacondaをインストールしたら、spyderをlaunchします

Launchの方法は簡単です

「Anaconda-Navigator」から「Spyder」を起動します

spyderの起動方法

Spyderについて、詳しい解説はこちらから

Pythonをspyderで起動する方法〜図解付きで簡単にわかる〜
Pythonをspyderで起動する方法〜図解付きで簡単にわかる〜今回は spyderとはなんなのか? Spyderの利用方法は? について解説をしていきたいと思います。 spyderを使うことでpythonの独学が加速すると思います。 ぜひ参考にしてみてください...

Spyderを起動すると以下のような画面になります

spydeの起動画面

プログラムを書いて、実行すると、画面右下に実行結果が表示されます。

spydeの実行画面

spyderでコードを書く

spyderでコードを書く

コードを書いていくのはspyderがおすすめです

Jupyter Notebookでコードを書いている人も多いと思いますが、僕のおすすめはspyerです

詳しい理由は以下の記事からどうぞ

Pythonをspyderで起動する方法〜図解付きで簡単にわかる〜
Pythonをspyderで起動する方法〜図解付きで簡単にわかる〜今回は spyderとはなんなのか? Spyderの利用方法は? について解説をしていきたいと思います。 spyderを使うことでpythonの独学が加速すると思います。 ぜひ参考にしてみてください...

pythonでデータ分析を行うための基本的なコードをマスターする

pythonでデータ分析を行うための基本的なコードをマスターする

Pythonでデータ分析を行うには、データ分析のコードだけではなく、pythonの基本的な文法もマスターしておく必要があります

その都度マスターするのではなく、少しずつマスターしていけばOKです

実際に僕はそういうふうに行なってきました

Pythonで基本となる文法は繰り返し出てくるので、一度で理解しようとしなくで大丈夫です

おすすめwebサイト

おすすめwebサイト

僕が独学でpythonを学んだときに参考にしたwebサイトです

今では公式ドキュメントを見ることが多いですが、最初に公式ドキュメントを読んでも理解できないので、さまざまなサイトを訪れていました

以下のサイトは分かりやすいと思います

【基礎一覧】Pythonの基本文法を全て解説してみた!【初心者】

Python3基礎文法

おすすめ書籍

おすすめ書籍

書籍も何冊か購入しましたが、pythonでデータ分析を行うのであれば、以下の書籍は必読だと思います

おすすめスクール

おすすめスクール

Pythonを独学で学ぶのがきついor時間・金銭的な余裕がある場合には、スクールに通うのも一つの方法です

短い期間で一気にpythonの知識をつけることができます

以下のスクールは無料体験などもあるので、無料体験後に入会するかどうかを決めればOKです

データサイエンスを安く学ぶなら「データミックス」

データミックスは国内でも数少ない、データサイエンティストを養成するプログラミングスクールです

データミックスの利用者は未経験の方もいますが、卒業時にはPythonを使ってデータ分析を行えるようになり、成果物を発表して卒業という流れになります

データミックスでは、給付金対象のため最大で51万引きになります

データサイエンスを学びたいと思っている方は、データミックスの利用がベストです

無料オンライン相談や個別相談などさまざまなイベントが開催中

python無料体験OK「テックジム」

テックジムでは無料のオンライン講座や校舎別講座を開いています。

この無料講座を通じて入会前にテックジムのカリキュラムに触れることで、納得して学習を開始することができます

無料セミナー開催の頻度も多く、東京以外でも全国のスクールで開催されています。

また、テックジムではTechGYM方式を採用しています

TechGYM方式とは、基礎知識・予備知識なしでも座学を利用しないでプログラミングに専念できるカリキュラムのことです。

従来の講義型の学習の場合、座学でプログラミングの基礎を学習してから実際に画面にコードを打ち込んでみる、という2段構えの学習スタイルが取られます。

しかし、TechGYM方式では演習の時間を多くとっているため、それだけ学習効率も高まります。

さらにテックジムはスクールとオンライン2種類を用意しているので、どこにいてもテックジムの講義を受けることができます。

無料体験などもあるので、ぜひこの機会に体験してみてください。

python無料体験OK「キカガク」

キカガクの最大の特徴は国の補助金である教育訓練支援給付の対象となっているため、70%offになることです

これだけでもキカガクを受講するメリットはあります。

さらにキカガクは教育のプロ集団でもあるため、難しい部分を初学者にわかりやすく解説してくれるため、挫折が少なくてすみます。

また、オンラインのみなので、通学に時間をかけない分、それだけプログラミングに集中することもできます

無料体験もあるので、ぜひこの機会に体験してみてください。

python無料体験OK「.Pro」

.Proはあまり名前を聞いたことがない人がほとんどかと思います。

それは広告をあまり出しておらず、新規生徒数も10人と絞っているためです。

週一回対面授業があり、生徒10名に対して講師は4名程度付きます。

少数精鋭で行なっているからこそ、ここまで手厚いサポートが可能となります。

無料体験などもあるので、ぜひこの機会に体験してみてください。

いずれにおいても、やればやっただけプログラミングの能力は上がります

Pythonでデータ分析を行うための主要なライブラリを把握する

Pythonでデータ分析を行うための主要なライブラリを把握する

Pythonの基本的な文法をマスターすることができたら、あとはデータ分析を行うのに必要なライブラリを把握すればOKです

Pythonでデータ分析を行う際によく出てくるライブラリは以下です

  • pandas
  • numpy
  • matplotlib
  • scikit-learn

pandas

pandas

pandasでは基本的なデータ分析・解析を行うことができるライブラリです

データの読み込み・書き込みなどの前処理などができます

要約統計量の算出も可能

python 統計学 要約統計量
【pythonで統計学】pandasを使って要約統計量を算出する方法〜サンプルコード付き〜研究を進めていると、最大値や平均値、中央値を算出する機会があります この辺りはすぐに算出することができますが、四分位範囲や標準偏差...

numpy

numpy

numpyは数値計算を行うことができるライブラリです

動作が高速なため、機械学習などでよく用いられています

matplotlib

matplotlib

データ可視化用のライブラリ

グラフ描画、画像表示などが可能

matplotlibよりseabornの方が綺麗なグラフを作成することができます

scikit-learn

scikit-learn

機械学習用のライブラリ

学習モデルを作成し、予測や分類などに適応することが可能

実際にpythonでデータ分析を行なってみる

実際にpythonでデータ分析を行なってみる

ここまでで一通りのデータ分析の流れを解説しました

実際にサンプルデータでデータ分析を行なっていきましょう

サンプルデータでデータ分析を行う

サンプルデータでデータ分析を行う

クラスタリングのサンプルコードは、以下の記事から実装することができます

python 機械学習 クラスタリング
Pythonで機械学習のクラスタリングを実装する【サンプルコードあり】この記事では、Pythonで機械学習のクラスタリングを実装していきます。クラスタリングは機械学習の中でも教師なし学習に分類される、機械学習です。PythonではK-meansを使ったクラスタリングを簡単に実装することができるので、一緒に実装していきましょう。...

また、線形回帰については、次のようになります

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error, r2_score

# サンプルデータの作成
np.random.seed(0)
X = np.random.rand(100, 1)
y = 2 * X + 1 + 0.1 * np.random.randn(100, 1)

# データを訓練データとテストデータに分割
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 線形回帰モデルのインスタンスを作成
model = LinearRegression()

# モデルの訓練
model.fit(X_train, y_train)

# モデルの予測
y_pred = model.predict(X_test)

# モデルの評価
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print(f"Mean squared error: {mse:.2f}")
print(f"R2 score: {r2:.2f}")

# 結果の可視化
plt.scatter(X_test, y_test, color='blue', label='Actual')
plt.scatter(X_test, y_pred, color='red', label='Predicted')
plt.plot(X_test, y_pred, color='red')
plt.legend()
plt.xlabel('X')
plt.ylabel('y')
plt.show()

勉強効率を高める教材

勉強効率を高める教材

Webサイトだけではうまく学習が進まない場合には、以下のコンテンツを使用することで、pythonの学習効率を高めることができます

udemy

Udemyの基本情報

・世界最大のオンライン学習プラットフォーム

・日本事業ではベネッセがパートナーになっている

・15万種類ものコース

・約3億人のユーザー登録

世界最大級のオンライン学習サイトUdemy

ドットインストール

ドットインストールは、動画を見ながら学べるサイト

学べる言語の幅や講座数が非常に多く、このようなサブスクリプションプログラミング学習サービス中では日本最大手

ドットインストールを見てみる

Aidemy

Aidemyの最大の特徴は国からの補助金で受講料が最大70%offになること

未経験からでも最短3ヶ月でAI・機械学習エンジニアとして転職可能なレベルのスキルを学べるサービスと口コミでも評判

Aidemyを見てみる

テックアカデミー

完全オンライン完結のプログラミングスクール

コースは全部で29種類と豊富であり、質問に対して即レスで返事をくれると口コミでも評判

テックアカデミーを見てみる

テラテイル

webで調べて、試行錯誤しても全くわからない…

っていう状況を打破してくれる、手助けしてくれるのが、テラテイル

実現したいこと・エラーメッセージ・コードなどを記載すれば、プロのエンジニアの方々が手助けをしてくれます

登録しておいて損はないサイトです

Python初心者はぜひ利用してみてください

テラテイルを利用する

kindle

Python学習を進めていく上で、

「ひとまず何かしらの書籍に目を通したい」

「webで調べても全くわからない」

という状況が何度も何度でも出てくるかと思います。

そういう時に便利なのが、kindleです

Kindleはご存知の通り、電子書籍です

Kindleには多くのpython学習本が用意されており、無料で読むことができます。

(たまに有料もあります)

ひとまずどういった書籍があるのか?

もしものために、書籍に目を通しておこう

という場合には、kindleの利用がおすすめです

kindleでpythonの書籍を無料で読んでみる

My Agile Privacy
This website uses technical and profiling cookies. Clicking on "Accept" authorises all profiling cookies. Clicking on "Refuse" or the X will refuse all profiling cookies. By clicking on "Customise" you can select which profiling cookies to activate.