ホームページ  >  記事  >  バックエンド開発  >  Python を使用してデータのパターンを発見する方法

Python を使用してデータのパターンを発見する方法

王林
王林転載
2023-04-28 13:43:061803ブラウズ

1. 準備

開始する前に、Python と pip がコンピューターに正常にインストールされていることを確認する必要があります。

(オプション 1) データ分析に Python を使用する場合は、Python と pip が組み込まれた Anaconda を直接インストールできます。

(オプション2) を選択します。 さらに、多くの利点がある VSCode エディターを使用することをお勧めします。

次のいずれかの方法を選択して、依存関係をインストールするコマンドを入力してください :

1. Windows 環境で Cmd (Start-Run-CMD) を開きます。

2. MacOS 環境 ターミナルを開きます (コマンドスペースを入力してターミナルに入ります)。

3. VSCode エディターまたは Pycharm を使用している場合は、インターフェイスの下部にあるターミナルを直接使用できます。

pip install pandas
pip install numpy
pip install scipy
pip install seaborn
pip install matplotlib

# 机器学习部分
pip install scikit-learn

2. 統計的な説明と検出パターン

統計に Python を使用する 説明では、Numpy や Pandas などのいくつかの組み込みライブラリを使用できます。

次に、基本的な統計記述関数をいくつか示します。

Mean (平均): データ セットの平均を計算します。

import numpy as np

data = [1, 2, 3, 4, 5]
mean = np.mean(data)
print(mean)

出力結果は次のとおりです: 3.0

中央値 (中央値): データ セットの中央値を計算します。

import numpy as np

data = [1, 2, 3, 4, 5]
median = np.median(data)
print(median)

出力結果は次のとおりです: 3.0

Mode (モード): データのセットのモードを計算します。

import scipy.stats as stats

data = [1, 2, 2, 3, 4, 4, 4, 5]
mode = stats.mode(data)
print(mode)

出力結果は次のとおりです: ModeResult(mode=array([4]), count=array([3]))

Variance (分散): 一連の分散の計算データ。

import numpy as np

data = [1, 2, 3, 4, 5]
variance = np.var(data)
print(variance)

出力結果は次のとおりです: 2.0

標準偏差 (標準偏差): データのセットの標準偏差を計算します。

import numpy as np

data = [1, 2, 3, 4, 5]
std_dev = np.std(data)
print(std_dev)

出力結果は、1.4142135623730951

上記は基本的な統計記述関数の一部ですが、他にも使用できる関数がありますので、具体的な使用方法については、各ドキュメントをご覧ください。

3. データ視覚化の分析ルール

Python にはデータ視覚化に使用できるライブラリが多数あり、最もよく使用されるのは Matplotlib と Seaborn です。以下にいくつかの基本的なデータ視覚化方法を示します。

折れ線グラフ (折れ線グラフ): 時間の経過に伴う傾向または特定の変数を示すために使用できます。

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

plt.plot(x, y)
plt.show()

散布図: 2 つの変数間の関係を示すために使用できます。

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

plt.scatter(x, y)
plt.show()

ヒストグラム: 数値データの分布を表示するために使用できます。

import matplotlib.pyplot as plt

data = [1, 2, 2, 3, 4, 4, 4, 5]

plt.hist(data, bins=5)
plt.show()

箱ひげ図 (箱ひげ図): 数値データの中央値、四分位数、外れ値などの情報を表示するために使用できます。

import seaborn as sns

data = [1, 2, 2, 3, 4, 4, 4, 5]

sns.boxplot(data)
plt.show()

棒グラフ: カテゴリ変数間の差異や比較を示すために使用できます。

import matplotlib.pyplot as plt

categories = ['A', 'B', 'C', 'D']
values = [10, 20, 30, 40]

plt.bar(categories, values)
plt.show()

上記は、基本的なデータ視覚化方法の一部です。Matplotlib と Seaborn はどちらも、より複雑なチャートやグラフィックを作成するために使用できる豊富な機能を提供します。

4. パターンを発見するためのグループ化および集計分析

Python では、pandas ライブラリを使用してデータを簡単にグループ化および集計し、データ内のパターンを発見できます。基本的なグループ化と集計の例を次に示します。

販売日、販売額、販売員名を含むデータ セットがあり、各販売員の合計売上高を知りたいとします。営業担当者名でグループ化し、合計や平均などの集計関数を各グループに適用できます。以下はサンプル コードです:

import pandas as pd

# 创建数据集
data = {'sales_date': ['2022-01-01', '2022-01-02', '2022-01-03', '2022-01-04', '2022-01-05', '2022-01-06', '2022-01-07', '2022-01-08', '2022-01-09', '2022-01-10'],
        'sales_amount': [100, 200, 150, 300, 250, 400, 350, 450, 500, 600],
        'sales_person': ['John', 'Jane', 'John', 'Jane', 'John', 'Jane', 'John', 'Jane', 'John', 'Jane']}

df = pd.DataFrame(data)

# 按销售员名称分组,并对每个组的销售金额求和
grouped = df.groupby('sales_person')['sales_amount'].sum()

print(grouped)

出力結果は次のとおりです:

sales_person
Jane 2200
John 1800
Name: sales_amount, dtype: int64

ご覧のとおり、営業担当者名ごとにグループ化し、各グループの売上高を合計することができました。このようにして、各販売員の合計売上高を見つけて、データのパターンを理解することができます。

5. 機械学習アルゴリズムの分析とパターンの発見

scikit-learn ライブラリを使用して、機械学習アルゴリズムを実装し、データ内のパターンを発見できます。以下は、デシジョン ツリー アルゴリズムを使用してデータを分類し、データ内のパターンを検出する方法を示す基本的な例です:

import pandas as pd
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# 创建数据集
data = {'age': [22, 25, 47, 52, 21, 62, 41, 36, 28, 44],
        'income': [21000, 22000, 52000, 73000, 18000, 87000, 45000, 33000, 28000, 84000],
        'gender': ['M', 'F', 'F', 'M', 'M', 'M', 'F', 'M', 'F', 'M'],
        'bought': ['N', 'N', 'Y', 'Y', 'N', 'Y', 'Y', 'N', 'Y', 'Y']}

df = pd.DataFrame(data)

# 将文本数据转换成数值数据
df['gender'] = df['gender'].map({'M': 0, 'F': 1})
df['bought'] = df['bought'].map({'N': 0, 'Y': 1})

# 将数据集分成训练集和测试集
X = df[['age', 'income', 'gender']]
y = df['bought']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

# 创建决策树模型
model = DecisionTreeClassifier()

# 训练模型
model.fit(X_train, y_train)

# 在测试集上进行预测
y_pred = model.predict(X_test)

# 计算模型的准确率
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy: {:.2f}%".format(accuracy*100))

出力結果は次のとおりです:

精度: 50.00%

ご覧のとおり、デシジョン ツリー アルゴリズムを使用してデータを分類し、テスト セット上のモデルの精度を計算しました。このようにして、どの要因が購入の意思決定に影響を与えるかなど、データ内のパターンを発見できます。これは単なる例であり、実際のアプリケーションでは、特定の問題に基づいて適切な機械学習アルゴリズムと特徴量エンジニアリング手法を選択する必要があります。

以上がPython を使用してデータのパターンを発見する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。