午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

使用 K

 美的愛好者 2018-11-26

本文為 AI 研習(xí)社編譯的技術(shù)博客,原標(biāo)題 :

Customer segmentation using Machine Learning K-Means Clustering

翻譯 | 呂鑫燦、就2 校對 | 就2 整理 | 志豪

原文鏈接:

http://www./customer-segmentation-using-machine-learning-k-means-clustering/

Rajshekhar Bodhale | 2017年11月17日 | 機(jī)器學(xué)習(xí)

基于信息技術(shù)的大多數(shù)平臺正在生成大量數(shù)據(jù)。這些數(shù)據(jù)稱為大數(shù)據(jù),它承載了大量的商業(yè)智能。這些數(shù)據(jù)互相交融以滿足不同的目標(biāo)和可能性。應(yīng)用機(jī)器學(xué)習(xí)技術(shù)就很有可能為客戶創(chuàng)造價(jià)值。

問題描述

  1. 我們在會計(jì)學(xué)和物聯(lián)網(wǎng)領(lǐng)域擁有基于大數(shù)據(jù)的平臺,可以持續(xù)生成客戶行為和設(shè)備監(jiān)控?cái)?shù)據(jù)。

  2. 識別目標(biāo)客戶群或者基于不同維度分析(推導(dǎo))模式非常關(guān)鍵,并且實(shí)在的為平臺提供了優(yōu)勢。

對應(yīng)想法

假設(shè)你有1000個(gè)客戶使用你的平臺并且不斷地產(chǎn)生體量龐大的大數(shù)據(jù),任何關(guān)于這方面的深入見解都將產(chǎn)生新的價(jià)值。

作為Patterns7團(tuán)隊(duì)不斷嘗試的機(jī)器學(xué)習(xí)計(jì)劃和創(chuàng)新事物的一部分,我們對K-Means聚類算法進(jìn)行了實(shí)驗(yàn),這為客戶帶來的價(jià)值非常驚人。

解決方案

聚類是將一組數(shù)據(jù)點(diǎn)劃分為少量聚類的過程。在本部分中,你將理解并學(xué)習(xí)到如何實(shí)現(xiàn)K-Means聚類。

K-Means聚類

K-Means聚類是一種常用于將數(shù)據(jù)集自動劃分為K個(gè)組的方法,它屬于無監(jiān)督學(xué)習(xí)算法。

使用 K-means 算法進(jìn)行客戶分類

K-Means目標(biāo)

  • K均值的目的是使每個(gè)點(diǎn)到其對應(yīng)的聚類質(zhì)心的距離的平方和最小。給定一組觀測值(x1,x2,...,xn),其中每一個(gè)觀測值都是d維實(shí)數(shù)向量,K均值聚類旨在將n個(gè)觀測值劃分為k(k≤n)個(gè)集合S={S1,S2,...,Sk}以最小化聚類內(nèi)的平方和,其中μi是Si中的點(diǎn)的平均值。

  • 保證K-Means算法收斂到局部最優(yōu)。

業(yè)務(wù)用途

這是一種通用算法,可用于任何類型的分組。部分使用案例如下:

  • 行為細(xì)分:按購買歷史記錄細(xì)分,按應(yīng)用程序、網(wǎng)站或者購買平臺上的活動細(xì)分。

  • 庫存分類:按照銷售活動分組存貨(準(zhǔn)備庫存)。

  • 傳感器測量:檢測運(yùn)動傳感器中的活動類型,并分組圖像。

  • 檢測機(jī)器人或異常:從機(jī)器人中分離出有效地活動組。

k - means聚類算法

  • 步驟1:選擇集群的數(shù)量K。

  • 步驟2:隨機(jī)選擇K個(gè)點(diǎn),作為質(zhì)心。(不一定要從你的數(shù)據(jù)集中選擇)

  • 步驟3:將每個(gè)數(shù)據(jù)點(diǎn)分配到-> 構(gòu)成K簇的最近的質(zhì)心。

  • 步驟4:計(jì)算并重新放置每個(gè)集群的新質(zhì)心。

  • 步驟5:將每個(gè)數(shù)據(jù)點(diǎn)重新分配到最近的質(zhì)心。如果有任何重置發(fā)生,轉(zhuǎn)到步驟4,否則轉(zhuǎn)到FIN。

示例:在python中對客戶費(fèi)用和發(fā)票數(shù)據(jù)應(yīng)用K-Means集群。

對于python,我使用的是Spyder Editor。

下面,我們將展示K-means算法如何處理客戶費(fèi)用和發(fā)票數(shù)據(jù)的例子。

我們有500個(gè)客戶數(shù)據(jù),我們關(guān)注兩個(gè)客戶特征: 客戶發(fā)票,客戶費(fèi)用。

一般來說,只要數(shù)據(jù)樣本的數(shù)量遠(yuǎn)遠(yuǎn)大于特征的數(shù)量,該算法可以用于任意數(shù)量的特征。

步驟1:清理和轉(zhuǎn)換數(shù)據(jù)

對于這個(gè)示例,我們已經(jīng)清理和做了一些簡單的數(shù)據(jù)轉(zhuǎn)換。下面是pandas DataFrame的數(shù)據(jù)樣本。

導(dǎo)入庫,

1、numpy 即用于數(shù)學(xué)工具的,以在我們的代碼中包含任何類型的數(shù)學(xué)

2、matplotlib 繪制漂亮的圖表

3、pandas 用于導(dǎo)入數(shù)據(jù)集和管理數(shù)據(jù)集

使用 K-means 算法進(jìn)行客戶分類

步驟2: 我們對總費(fèi)用和總發(fā)票應(yīng)用聚類。在X中選擇必需的列。

使用 K-means 算法進(jìn)行客戶分類

下圖顯示了500個(gè)客戶的數(shù)據(jù)集,總發(fā)票在x軸,總費(fèi)用在y軸。

使用 K-means 算法進(jìn)行客戶分類

步驟3:選擇K并運(yùn)行算法

選擇K

上面描述的算法找到一個(gè)特定的預(yù)先選擇K的集群和數(shù)據(jù)集標(biāo)簽。為了找到數(shù)據(jù)中的集群數(shù)量,用戶需要運(yùn)行K-means聚類算法對K個(gè)值的范圍進(jìn)行聚類并比較結(jié)果。一般來說,沒有確定K的精確值的方法,但是可以使用以下技術(shù)得到精確的估計(jì)值。

通常用于比較不同K值之間的結(jié)果的度量之一是:

數(shù)據(jù)點(diǎn)與它們的集群中心之間的平均距離。

因?yàn)樵黾蛹旱臄?shù)量總是會減少到數(shù)據(jù)點(diǎn)的距離,所以增加K總是會減少這個(gè)度量,當(dāng)K等于數(shù)據(jù)點(diǎn)的數(shù)量時(shí)達(dá)到0的極限。因此,這個(gè)指標(biāo)不能作為唯一的目標(biāo)。相反,將與質(zhì)心的平均距離作為K的函數(shù)繪制出來,并使用“彎頭點(diǎn)”(急劇下降的速度)來粗略地確定K。

使用 K-means 算法進(jìn)行客戶分類

用彎頭法求出最優(yōu)簇?cái)?shù)K=3。對于本例,使用Python包scikit-learn進(jìn)行計(jì)算,如下所示:

# K-Means Clustering

# importing the libraries

import numpy as np

import matplotlib.pyplot as plt

import pandas as pd

# importing tha customer Expenses Invoices dataset with pandas

dataset=pd.read_csv('Expense_Invoice.csv')

X=dataset.iloc[: , [3,2]].values

# Using the elbow method to find the optimal number of clusters

from sklearn.cluster import KMeans

wcss =

for i in range(1, 11):

kmeans=KMeans(n_clusters=i, init='k-means++', max_iter= 300, n_init= 10, random_state= 0)

kmeans.fit(X)

wcss.append(kmeans.inertia_)

plt.plot(range(1, 11),wcss)

plt.title('The Elbow Method')

plt.xlabel('Number of clusters K')

plt.ylabel('Average Within-Cluster distance to Centroid (WCSS)')

plt.show

# Applying k-means to the mall dataset

kmeans=KMeans(n_clusters=3, init='k-means++', max_iter= 300, n_init= 10, random_state= 0)

y_kmeans=kmeans.fit_predict(X)

# Visualizing the clusters

plt.scatter(X[y_kmeans == 0, 0], X[y_kmeans == 0, 1], s = 100, c = 'red', label='Careful(c1)')

plt.scatter(X[y_kmeans == 2, 0], X[y_kmeans == 2, 1], s = 100, c = 'green', label='Standard(c2)')

plt.scatter(X[y_kmeans == 1, 0], X[y_kmeans == 1, 1], s = 100, c = 'blue', label='Target(c3)')

plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], s = 250, c = 'yellow',

label='Centroids')

plt.title('Clusters of customer Invoices & Expenses')

plt.xlabel('Total Invoices ')

plt.ylabel('Total Expenses')

plt.legend

plt.show

步驟4:查看結(jié)果

下面的圖表顯示了結(jié)果。

  • “謹(jǐn)慎型客戶”誰的收入越少,他們花的也就越少。

  • “一般客戶”收入是平均的,他們花得更少,

  • “目標(biāo)客戶”是誰的收入更多,他們花得更多。

使用 K-means 算法進(jìn)行客戶分類

想要繼續(xù)查看該篇文章更多代碼、鏈接和參考文獻(xiàn)?雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)

戳鏈接:http://www./page/TextTranslation/691

AI研習(xí)社每日更新精彩內(nèi)容,點(diǎn)擊文末【閱讀原文】即可觀看更多精彩內(nèi)容:

Google 啟動新搜索引擎,幫助科學(xué)家找到需要的數(shù)據(jù)集

立志成為數(shù)據(jù)科學(xué)家?掌握以下基礎(chǔ)

當(dāng)機(jī)器學(xué)習(xí)遇上運(yùn)動鞋

基于opencv和python的手指識別及追蹤

等你來譯:

建立一個(gè)基于深度學(xué)習(xí)的混合型的內(nèi)容協(xié)同電影推薦系統(tǒng)

決策樹:一種像人腦一樣工作的算法

如何用 Dask 數(shù)據(jù)框架運(yùn)行并行數(shù)據(jù)分析

蒙特卡洛模擬航空公司超訂

游戲 AI 入門指南

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多