人工知能と機械学習を適用して消費者の行動を予測する方法

 

AI と機械学習を適用して消費者の行動を予測する

この記事では、一般的な消費者行動を調査および分析します。また、企業がより良い価値を提供し、より良い収益を生み出すというビジョンを実現するために正しい決定を下せるようにする貴重な洞察を AI がどのように発見できるかについても学びます。

また、データ サイエンスと分析を使用して、より良いソリューションにつながる貴重な洞察を明らかにするケースについても説明します。

前提条件

前提条件として、読者は Python と機械学習についてある程度の知識を持っている必要があります。

人工知能とは何ですか?

人工知能とは、人間と同じように学習する機械の能力を指し、それによって人間の知能のレベル、あるいはそれ以上に到達します。

人工知能の分野が進歩するにつれて、オートメーション、サプライ チェーン、電子商取引、製造などの複数の業界の改善につながります。

それだけでなく、人工知能のサブ部分、つまりデータ サイエンスと機械学習によって、企業は正しい意思決定を行えるようになりました。より簡単に言うと、電子商取引ストアの収益を増やすために、顧客の好み、最も頻繁に購入される商品、以前の検索、商品購入間の相関関係などに基づいて、顧客にパーソナライズされた推奨事項を分析して提供できます。

AI は、在庫、物流の計画、傾向やパターンの発見、過去の傾向に基づく将来の結果の予測、事実に基づく決定の通知などにより、電子商取引において重要な役割を果たしてきました。

消費者行動を理解する

最も広い意味での消費者行動には、消費者が商品やサービスをどのように選択、決定、使用、処分するかが含まれます。あらゆる業種の個人、グループ、組織をカバーします。

これは、購買行動に影響を与える消費者の感情、態度、好みについての優れたアイデアと洞察を提供します。したがって、マーケティング担当者が顧客のニーズを理解できるように支援し、顧客に価値をもたらし、ひいては会社に収益をもたらします。

消費者の行動を予測する

大企業は、顧客の行動を予測することで市場のギャップを埋め、望ましい製品を特定し、より大きな収益を生み出すことができることを理解しています。

消費者の行動の予測は次の方法で行うことができます。

  1. セグメンテーション: 購入行動に基づいて顧客を小さなグループに分割します。これは懸念事項を分離するのに役立ち、ひいては市場の領域を特定するのに役立ちます。
  2. 予測分析: 当社では、顧客の将来の行動を予測するために、統計手法を使用して過去の履歴データを分析します。

段階的な実装

では、実際の例でこれがどのように行われるかを見てみましょう。

データセットを理解する

このデータセットには、顧客に関連する情報が含まれています。

  • CustomerID - お客様のID
  • Gender - クライアントの性別
  • Age - お客様の年齢
  • AnnualIncome ・お客様の年収
  • SpendingScore - 顧客の行動と購入データに基づいて割り当てられたスコア

目的

このチュートリアルの目的は、購入データに基づいて顧客の行動を理解することです。これは、マーケティング チームが新しい戦略を理解し、それに応じて開発するのに役立ちます。

インポートライブラリ

データ探索のために、いくつかの Python ライブラリをインストールする必要があります。

ダウンロードが必要なライブラリがあります。

  • [NumPy]
  • 【パンダ】
  • [マットプロットライブラリ]
  • [スクラーン]
  • [ケンブリッジ大学]
import numpy as np
import pandas as pd
import sklearn
import matplotlib.pyplot as plt
import seaborn as sns
复制代码

データセットを表示する

始める前に、データセットを見てみましょう。データセットを表示するには、以下の画像に示すように CSV ファイルを読み取ってデータセットをインポートする必要があります。

df = pd.read_csv(r'../input/Mall_Customers.csv')
df.head()
复制代码

 データセットの最初の 5 行

データの視覚化

年齢、収入、消費スコアの相関関係

より良いマーケティング戦略は、消費パターンを分析することです。ここでは、顧客の年齢、年収、支出スコアの状況を分析して調べてみましょう。

plt.figure(1 , figsize = (15 , 6)) # sets the dimensions of image
n = 0 
for x in ['Age' , 'Annual Income (k$)' , 'Spending Score (1-100)']:
    n += 1
    plt.subplot(1 , 3 , n) # creates 3 different sub-plots
    plt.subplots_adjust(hspace =0.5 , wspace = 0.5)
    sns.distplot(df[x] , bins = 20) # creates a distribution plot
    plt.title('Distplot of {}'.format(x)) # sets title for each plot
plt.show() # displays all the plots
复制代码

出力。

 年齢、年収、消費割合の分布図

 

ジェンダー分析

戦略を決める上で 2 番目に重要なことは、性別ごとに消費パターンを分析することです。ここで、女性は男性よりも購入する傾向が高いことがわかります。

plt.figure(1 , figsize = (15 , 5))
sns.countplot(y = 'Gender' , data = df)
plt.show()
复制代码

出力。

 男性と女性の消費パターンを表すカウントプロット。

クライアントのサブディビジョン

セグメンテーションは、大規模なデータセットを、マーケティングに関連する特定の側面で類似した小さな観察グループに分割するのに役立ちます。

各グループには、互いに類似しているが、他のグループの個人とは異なる個人が含まれています。

セグメンテーションは、顧客セグメントを作成し、顧客ごとに関連する戦略を調整するためのマーケティング ツールとして広く使用されています。

ここでは、いくつかの要素に基づいてこのデータをセグメント化する方法を学び、それが既存の戦略の改善にどのように役立つかを見ていきます。

年齢と支出スコアを使用したセグメント

顧客の年齢と支出スコアに基づいてセグメント化してみましょう。これは顧客の年齢層を理解するのに役立ち、支出スコアが改善され、会社の収益が増加する可能性があります。

ここで、最良の結果を得るために、考えられるクラスター (サブディビジョン) の数を決定する必要があります。そのために、 どのグループが正しい選択であるかを調べる1 ためにここに来ました。11

X_age_spending = df[['Age' , 'Spending Score (1-100)']].iloc[: , :].values # extracts only age and spending score information from the dataframe
inertia = []
for n in range(1 , 11):
    model_1 = (KMeans(n_clusters = n ,init='k-means++', n_init = 10 , max_iter=300, 
                        tol=0.0001,  random_state= 111  , algorithm='elkan')) # use predefined Kmeans algorithm
    model_1.fit(X_age_spending) # fit the data into the model
    inertia.append(model_1.inertia_)
复制代码

これを図で説明してみましょう。

plt.figure(1 , figsize = (15 ,6)) # set dimension of image
plt.plot(np.arange(1 , 11) , inertia , 'o') # Mark the points with a solid circle
plt.plot(np.arange(1 , 11) , inertia , '-' , alpha = 0.5) # connect remaining points with a line
plt.xlabel('Number of Clusters') , plt.ylabel('Inertia') # label the x and y axes
plt.show() # display
复制代码

 クラスターを示す折れ線グラフ

 

お気づきかと思いますが、クラスターでは4 折れ線グラフが安定し始めます。この方法を「エルボ法」といいます。

ここで、4 つのクラスターのケースをさらに詳しく調べてみましょう。

model_2 = (KMeans(n_clusters = 4 ,init='k-means++', n_init = 10 ,max_iter=300, 
                        tol=0.0001,  random_state= 111  , algorithm='elkan') ) # set number of clusters as 4
model_2.fit(X_age_spending) # fit the model
labels1 = model_2.labels_
centroids1 = model_2.cluster_centers_
复制代码

では、それらを視覚化してみましょう。

その前に、グラフを描画するには、最大値と最小値の範囲の設定、初期化meshgrid() などの前提条件がいくつかあります。

h = 0.02
x_min, x_max = X_age_spending[:, 0].min() - 1, X_age_spending[:, 0].max() + 1
y_min, y_max = X_age_spending[:, 1].min() - 1, X_age_spending[:, 1].max() + 1
xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))
Z = model_2.predict(np.c_[xx.ravel(), yy.ravel()])  # returns flattened 1D array
复制代码

それでは、グラフを描いてみましょう。

plt.figure(1 , figsize = (15 , 7) )
plt.clf()
Z = Z.reshape(xx.shape)
plt.imshow(Z , interpolation='nearest', 
           extent=(xx.min(), xx.max(), yy.min(), yy.max()),
           cmap = plt.cm.Pastel2, aspect = 'auto', origin='lower')

plt.scatter( x = 'Age' ,y = 'Spending Score (1-100)' , data = df , c = labels1 , 
            s = 200 )
plt.scatter(x = centroids1[: , 0] , y =  centroids1[: , 1] , s = 300 , c = 'red' , alpha = 0.5)
plt.ylabel('Spending Score (1-100)') , plt.xlabel('Age')
plt.show()
复制代码

出力。

 4 つのクラスターを使用した KMeans

 

上のグラフから、消費パターンについて多くのことが推測できます。

  • 年齢に関係なく、平均支出スコアは約20
  • 上位のクラスターでは、40 年齢未満の顧客の支出スコアが最も高くなります。このグループはそれほどまばらではありません。
  • 年齢を重ねても40 、消費スコアは常に の30 - 60 範囲内に保たれます。

これらのデータに関するさらなる洞察は、直接的または間接的に関連する可能性のあるすべてのパラメーターに関連付けられたより深いデータ分析を通じて抽出できます。

結論は

上記の簡単なケーススタディからわかるように、AI はほぼすべての業界で重要な役割を果たしていることがわかります。データ分析のトレンドが高まる中、戦略を改善し、より適切な意思決定を行うために、顧客の行動が継続的に監視されています。

この記事は、初心者がこの分野を始めるためのガイドのみを目的としています。

おすすめ

転載: blog.csdn.net/weixin_73136678/article/details/128507058#comments_26295913