簡述網(wǎng)站開發(fā)的幾個步驟搜索熱度和搜索人氣
前言:
Hello大家好,我是Dream。 今天來學習一下機器學習實戰(zhàn)中的案例:創(chuàng)建客戶細分,在此過程中也會補充很多重要的知識點,歡迎大家一起前來探討學習~
一、導入數(shù)據(jù)
在此項目中,我們使用 UCI 機器學習代碼庫中的數(shù)據(jù)集。該數(shù)據(jù)集包含關于來自多種產(chǎn)品類別的各種客戶年度消費額(貨幣單位計價)的數(shù)據(jù)。該項目的目標之一是準確地描述與批發(fā)商進行交易的不同類型的客戶之間的差別。這樣可以使分銷商清晰地了解如何安排送貨服務,以便滿足每位客戶的需求。對于此項目,我們將忽略特征 'Channel'
和 'Region'
,重點分析記錄的六個客戶產(chǎn)品類別。
# Import libraries necessary for this project
import numpy as np
import pandas as pd
from IPython.display import display # Allows the use of display() for DataFrames
import visuals as vs
%matplotlib inline
try:data = pd.read_csv("customers.csv")data.drop(['Region', 'Channel'], axis = 1, inplace = True)print("Wholesale customers dataset has {} samples with {} features each.".format(*data.shape))
except:print("Dataset could not be loaded. Is the dataset missing?")
Wholesale customers dataset has 440 samples with 6 features each.
二、分析數(shù)據(jù)
我們通過可視化圖表和代碼開始探索數(shù)據(jù),并了解每個特征相互之間的關系。觀察數(shù)據(jù)集的統(tǒng)計學描述內(nèi)容。注意數(shù)據(jù)集由 6 個重要的產(chǎn)品類別構成:“Fresh”、“Milk”、“Grocery”、“Frozen”、“Detergents_Paper”和“Delicatessen”。思考每個類別代表你可以購買的哪些產(chǎn)品。
# Display a description of the dataset
display(data.describe())
選擇樣本
為了更好地通過分析了解客戶以及他們的數(shù)據(jù)會如何變化,最好的方式是選擇幾個樣本數(shù)據(jù)點并更詳細地分析這些數(shù)據(jù)點。向 indices
列表中添加三個你所選的索引,表示將跟蹤的客戶。
# TODO: Select three indices of your choice you wish to sample from the dataset
indices = [60,100,380]
samples = pd.DataFrame(data.loc[indices], columns = data.keys()).reset_index(drop = True)
print("Chosen samples of wholesale customers dataset:")
display(samples)
Chosen samples of wholesale customers dataset:
benchmark = data.mean()
((samples-benchmark) / benchmark).plot.bar()
<matplotlib.axes._subplots.AxesSubplot at 0x234812d7320>
# TODO: Apply PCA by fitting the good data with the same number of dimensions as features
from sklearn.decomposition import PCA
log_data = np.log(samples)
log_samples = np.log(log_data)
pca = PCA(n_components=6)
pca.fit(log_data)pca_samples = pca.transform(log_samples)pca_results = vs.pca_results(log_data, pca)
- 你所選的每個樣本可以代表什么樣的(客戶)場所?
提示: 場所示例包括市場、咖啡廳、熟食店、零售店等地點。避免使用具體的名稱,例如在將樣本客戶描述為餐廳時使用“麥當勞”??梢允褂脜⒖季蹬c你的樣本進行比較。均值如下所示:
- Fresh:12000.2977
- Milk:5796.2
- Grocery:7951.28
- Frozen:3071.9
- Detergents_paper:2881.4
- Delicatessen:1524.8
-
樣本0:Detergents_Paper在75%,Fresh、Milk接近中位數(shù)、Grocery接近均值、 Delicatessen和Frozen比較少,推斷是零售店;
-
樣本1:Detergents_Paper、Fresh、Milk、Grocery、 Delicatessen和Frozen所有特征都在均值以上,但是沒有哪樣特別多,推斷是大型超市;
-
樣本2:Fresh超過75%、Frozen為均值附近、其他特征較少,推測是新鮮肉菜市場;
特征相關性
一個值得考慮的有趣問題是,在六個產(chǎn)品類別中是否有一個(或多個)類別實際上在了解客戶購買情況時相互有關聯(lián)性。也就是說,是否能夠判斷購買一定量的某個類別產(chǎn)品的客戶也一定會購買數(shù)量成比例的其他類別的產(chǎn)品?我們可以通過以下方式輕松地做出這一判斷:刪除某個特征
,并用一部分數(shù)據(jù)訓練監(jiān)督式回歸學習器,然后對模型評估所刪除特征的效果進行評分。
- 通過使用
DataFrame.drop
函數(shù)刪除你所選的特征,為new_data
分配一個數(shù)據(jù)副本。 - 使用
sklearn.cross_validation.train_test_split
將數(shù)據(jù)集拆分為訓練集和測試集。- 使用刪除的特征作為目標標簽。將
test_size
設為0.25
并設置random_state
。
- 使用刪除的特征作為目標標簽。將
- 導入決策樹回歸器,設置
random_state
,并將學習器擬合到訓練數(shù)據(jù)中。 - 使用回歸器
score
函數(shù)報告測試集的預測分數(shù)。
# TODO: Make a copy of the DataFrame, using the 'drop' function to drop the given feature
from sklearn.metrics import accuracy_score
from sklearn import tree
y = data['Detergents_Paper']
new_data = data.copy()new_data.drop(['Detergents_Paper'], axis = 1, inplace = True)from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(new_data, y,test_size=.25,random_state=50)regressor = tree.DecisionTreeRegressor(random_state=10)
regressor.fit(X_train,y_train)
score = regressor.score(X_test,y_test)
print("預測分數(shù):",score)
預測分數(shù): 0.8017669397135979
1:你嘗試預測的是哪個特征?
回答: Detergents_Paper
2:報告的預測分數(shù)是多少?
回答: 0.801766939714
3:該特征對確定客戶的消費習慣有影響嗎?
回答: Detergents_Paper=0.801擬合性表現(xiàn)很好;說明這個特征與其他特征相關性不重要;對消費習慣有一定影響,但可以用其他特征體現(xiàn)。
確定系數(shù) R^2
的范圍是 0 到 1,1 表示完美擬合。負的 R^2
表示模型無法擬合數(shù)據(jù)。如果特定特征的分數(shù)很低,則表明使用其他特征很難預測該特征點,因此在考慮相關性時這個特征很重要。
可視化特征分布圖
為了更好地理解數(shù)據(jù)集,我們可以為數(shù)據(jù)中的六個產(chǎn)品特征分別構建一個散布矩陣。如果你發(fā)現(xiàn)你在上面嘗試預測的特征與識別特定客戶有關,那么下面的散布矩陣可能會顯示該特征與其他特征之間沒有任何關系。相反,如果你認為該特征與識別特定客戶不相關,散布矩陣可能會顯示該特征與數(shù)據(jù)中的另一個特征有關系。運行以下代碼塊,以生成散布矩陣。
# Produce a scatter matrix for each pair of features in the data
pd.plotting.scatter_matrix(data, alpha = 0.3, figsize = (14,8), diagonal = 'kde');
data.corr()
data.cov()
- 將散布矩陣作為參考,討論數(shù)據(jù)集的分布情況,尤其是正態(tài)性、離群值、大量接近 0 的數(shù)據(jù)點等。如果你需要區(qū)分某些圖表,以便進一步闡述你的觀點,也可以這么做。
Grocery和Detergents_Paper相關性強;Grocery和Milk也有一定的相關性。具體可以通過data.corr()顯示的數(shù)據(jù),越接近1的相關性越強;
數(shù)據(jù)的分布不是正態(tài)性,大部分數(shù)據(jù)集中在8000以內(nèi),離群的數(shù)據(jù)只有一小部分;
三、數(shù)據(jù)預處理
在此部分,預處理數(shù)據(jù)(對數(shù)據(jù)進行縮放并檢測離群值,或許還會刪除離群值),以便更好地表示客戶數(shù)據(jù)。預處理數(shù)據(jù)通常是很關鍵的步驟,可以確保通過分析獲得的結果有顯著統(tǒng)計意義。
特征縮放
如果數(shù)據(jù)不是正態(tài)分布數(shù)據(jù),尤其是如果均值和中值差別很大(表明非常偏斜),通常[比較合適的方法]
是應用非線性縮放——尤其是對金融數(shù)據(jù)來說。實現(xiàn)這種縮放的一種方式是采用[博克斯-卡克斯檢定]
,該檢定會計算能縮小偏斜情況的最佳次方轉換方式。適合大多數(shù)情況的更簡單方式是采用自然對數(shù)。
- 通過應用對數(shù)縮放將數(shù)據(jù)副本賦值給
log_data
。你可以使用np.log
函數(shù)完成這一步。 - 在應用對數(shù)縮放后,將樣本數(shù)據(jù)副本賦值給
log_samples
。同樣使用np.log
。
# TODO: Scale the data using the natural logarithm
log_data = np.log(data)log_samples = np.log(samples)pd.plotting.scatter_matrix(log_data, alpha = 0.3, figsize = (14,8), diagonal = 'kde');
觀察
在對數(shù)據(jù)應用自然對數(shù)縮放后,每個特征的分布應該看起來很正態(tài)了。對于之前可能發(fā)現(xiàn)相互有關聯(lián)的任何特征對,在此部分觀察這種聯(lián)系是否依然存在:
# Display the log-transformed sample data
display(log_samples)
檢測離群值
對于任何分享的數(shù)據(jù)預處理步驟來說,檢測數(shù)據(jù)中的離群值都極為重要。如果結果考慮了離群值,那么這些離群值通常都會使結果出現(xiàn)偏斜。在判斷什么樣的數(shù)據(jù)屬于離群值時,可以采用很多“一般規(guī)則”。在此項目中,我們將使用 Tukey 方法檢測離群值:離群值步長等于 1.5 倍四分位距 (IQR)。如果某個數(shù)據(jù)點的特征超出了該特征的離群值步長范圍,則該特征屬于異常特征。
- 將給定特征的第 25 百分位值賦值給
Q1
。 為此,請使用np.percentile
。 - 將給定特征的第 75 百分位值賦值給
Q3
。同樣使用np.percentile
。 - 將給定特征的離群值步長計算結果賦值給
step
。 - (可選步驟)通過向
outliers
列表添加索引,從數(shù)據(jù)集中刪除某些數(shù)據(jù)點。
注意: 如果你選擇刪除任何離群值,確保樣本數(shù)據(jù)不包含任何此類數(shù)據(jù)點! 實現(xiàn)這一步驟后,數(shù)據(jù)集將存儲在變量 good_data
中。
# For each feature find the data points with extreme high or low values
for feature in log_data.keys():f_s = log_data[feature]Q1 =np.percentile(f_s,25)Q3 = np.percentile(f_s,75)step = 1.5 * (Q3 - Q1)print("Data points considered outliers for the feature '{}':".format(feature))display(log_data[~((log_data[feature] >= Q1 - step) & (log_data[feature] <= Q3 + step))])outliers = [65,66,75,128,154]
good_data = log_data.drop(log_data.index[outliers]).reset_index(drop = True)
Data points considered outliers for the feature ‘Fresh’:
Data points considered outliers for the feature ‘Milk’:
Data points considered outliers for the feature ‘Grocery’:
Data points considered outliers for the feature ‘Frozen’:
Data points considered outliers for the feature ‘Detergents_Paper’:
Data points considered outliers for the feature ‘Delicatessen’:
## 計算大于等于兩次的異常數(shù)據(jù)
def caltwiceoutliers(row):out = 0for feature in log_data.keys():p = row[feature]f = log_data[feature]Q1 = np.percentile(f,25)Q3 = np.percentile(f,75)step = 1.5*(Q3-Q1)if (p <= Q1 - step) or (p >= Q3 + step): out += 1return out > 1 lst = []
for i,row in log_data.iterrows():if caltwiceoutliers(row): lst.append(i)
display(log_data.loc[lst])
[65,66,75,128,154]這幾個樣本在不同的特征上都超出離群值步長范圍,表現(xiàn)為異常特征。刪除前后對于PCA最大方差的數(shù)值并見影響,所以可以不刪除。
四、特征轉換
在此部分,利用主成分分析 (PCA) 得出批發(fā)客戶數(shù)據(jù)的基本結構。因為對數(shù)據(jù)集使用 PCA 會計算哪些維度最適合最大化方差,我們將發(fā)現(xiàn)哪些特征組合最能描述客戶。
實現(xiàn):PCA
現(xiàn)在數(shù)據(jù)已經(jīng)縮放為更正態(tài)的分布,并且刪除了任何需要刪除的離群值,現(xiàn)在可以向 good_data
應用 PCA,以發(fā)現(xiàn)哪些數(shù)據(jù)維度最適合最大化所涉及的特征的方差。除了發(fā)現(xiàn)這些維度之外,PCA 還將報告每個維度的可解釋方差比——數(shù)據(jù)中有多少方差可以僅通過該維度進行解釋。注意 PCA 的成分(維度)可以視為空間的新“特征”,但是它是數(shù)據(jù)中存在的原始特征的成分:
- 導入
sklearn.decomposition.PCA
并將對good_data
進行六維度 PCA 轉化的結果賦值給pca
。 - 使用
pca.transform
對log_samples
應用 PCA 轉化,并將結果賦值給pca_samples
。
# TODO: Apply PCA by fitting the good data with the same number of dimensions as features
from sklearn.decomposition import PCA
good_data = log_data
pca = PCA(n_components=6)
pca.fit(good_data)pca_samples = pca.transform(log_samples)pca_results = vs.pca_results(good_data, pca)
內(nèi)容補充
- 由第一個主成分和第二個主成分解釋的數(shù)據(jù)方差* 總量 *是多少?
- 第一個主成分和第二個主成分解釋的數(shù)據(jù)方差總量是:0.719;
- 前四個主成分解釋的數(shù)據(jù)方差是多少?
- 前四個主成分解釋的數(shù)據(jù)方差是0.9314;
- 使用上面提供的可視化圖表描述每個維度和每個維度解釋的累積方程,側重于每個維度最能表示哪些特征(包括能解釋的正方差和負方差)。討論前四個維度最能表示什么樣的客戶消費規(guī)律。
-
維度一特征權重高的:清潔劑,牛奶,雜貨,代表客戶為零售商店。
-
維度二特征權重高的:新鮮食品,冷凍食品,和熟食 代表客戶為餐廳。
-
維度三特征權重高的:新鮮食品、熟食 代表客戶為快餐店
-
維度四特征權重高的:冷凍食品,熟食為主 代表客戶為西餐廳
特定維度的正增長對應的是正加權特征的增長以及負加權特征的降低。增長或降低比例由具體的特征權重決定。
觀察
運行以下代碼,看看經(jīng)過對數(shù)轉換的樣本數(shù)據(jù)在六維空間里應用 PCA 轉換后有何變化:
# Display sample log-data after having a PCA transformation applied
display(pd.DataFrame(np.round(pca_samples, 4), columns = pca_results.index.values))
降維
在使用主成分分析時,主要目標之一是降低數(shù)據(jù)維度,以便降低問題的復雜度。降維有一定的代價:使用的維度越少,則解釋的總方差就越少。因此,為了了解有多少個維度對問題來說是必要維度,累積可解釋方差比顯得極為重要。此外,如果大量方差僅通過兩個或三個維度進行了解釋,則縮減的數(shù)據(jù)可以之后可視化:
- 將對
good_data
進行二維擬合 PCA 轉換的結果賦值給pca
。 - 使用
pca.transform
對good_data
進行 PCA 轉換,并將結果賦值給reduced_data
。 - 使用
pca.transform
應用log_samples
PCA 轉換,并將結果賦值給pca_samples
。
# TODO: Apply PCA by fitting the good data with only two dimensions
pca = PCA(n_components=2)
pca.fit(good_data)
# TODO: Transform the good data using the PCA fit above
reduced_data = pca.transform(good_data)
# TODO: Transform log_samples using the PCA fit above
pca_samples = pca.transform(log_samples)reduced_data = pd.DataFrame(reduced_data, columns = ['Dimension 1', 'Dimension 2'])
觀察前兩個維度的值與六維空間里的 PCA 轉換相比如何沒有變化:
# Display sample log-data after applying PCA transformation in two dimensions
display(pd.DataFrame(np.round(pca_samples, 4), columns = ['Dimension 1', 'Dimension 2']))
五、可視化雙標圖
雙標圖
是一種散點圖,每個數(shù)據(jù)點由主成分上的分數(shù)表示。坐標軸是主成分(在此圖中是 Dimension 1
和 Dimension 2
)。此外,雙標圖顯示了原始特征沿著成分的投影情況。雙標圖可以幫助我們解釋降維數(shù)據(jù),并發(fā)現(xiàn)主成分與原始特征之間的關系。
以生成降維數(shù)據(jù)雙標圖:
# Create a biplot
vs.biplot(good_data, reduced_data, pca)
<matplotlib.axes._subplots.AxesSubplot at 0x23480c59898>
獲得原始特征投影(紅色部分)后,更容易解釋每個點在散點圖中的相對位置。例如,圖中右下角的點更有可能對應于在 'Milk'
、'Grocery'
和 'Detergents_Paper'
上花費很多、但是在其他產(chǎn)品類別上花費不多的客戶。
六、聚類
在此部分,使用 K 均值聚類算法或高斯混合模型聚類算法發(fā)現(xiàn)數(shù)據(jù)中隱藏的各種客戶細分。通過將數(shù)據(jù)點重新轉換成原始維度和范圍,從聚類中還原具體的數(shù)據(jù)點以了解它們的顯著性。
k-means 算法優(yōu)的勢:
-
是解決聚類問題的一種經(jīng)典算法,簡單、快速
-
對處理大數(shù)據(jù)集,該算法保持可伸縮性和高效性
-
聚類是密集的,且類與類之間區(qū)別明顯時,效果較好。
高斯混合模型聚類算法的優(yōu)勢:
-
類區(qū)別劃分不是那么明顯時
-
計算快,是學習混合模型最快的算法
-
低偏差,不容易欠擬合
由于Kmeans的優(yōu)勢是密集型類與類之間區(qū)別明顯時效果較好,本數(shù)據(jù)離散值比較多,而且有很多相同屬性,所以采用高斯混合模型聚類算法。
創(chuàng)建聚類
根據(jù)具體的問題,預計從數(shù)據(jù)中發(fā)現(xiàn)的距離數(shù)量可能是已知的數(shù)量。如果無法根據(jù)先驗判斷聚類的數(shù)量,則無法保證給定的聚類數(shù)量能夠以最佳方式細分數(shù)據(jù),因為不清楚數(shù)據(jù)存在什么樣的結構。但是,我們可以根據(jù)每個數(shù)據(jù)點的輪廓系數(shù)量化聚類的“優(yōu)勢” 。數(shù)據(jù)點的[輪廓系數(shù)]會衡量數(shù)據(jù)點與所分配的聚類之間的相似度,程度用 -1(不相似)到 1(相似) 表示。計算均值輪廓系數(shù)是對給定聚類進評分的簡單方法:
- 對
reduced_data
應用聚類算法并將結果賦值給clusterer
。 - 使用
clusterer.predict
預測reduced_data
中每個數(shù)據(jù)點的聚類,并將它們賦值給preds
。 - 使用算法的相應屬性得出聚類中心,并將它們賦值給
centers
。 - 預測
pca_samples
中每個樣本數(shù)據(jù)點的聚類,并將它們賦值給sample_preds
。 - 導入
sklearn.metrics.silhouette_score
并對照preds
計算reduced_data
的輪廓分數(shù)。- 將輪廓分數(shù)賦值給
score
并輸出結果。
- 將輪廓分數(shù)賦值給
# TODO: Apply your clustering algorithm of choice to the reduced data
from sklearn.mixture import GaussianMixture
from sklearn.metrics import silhouette_score
best_score =0
for i in [2, 3, 4, 5, 6, 7, 8]:clusterer = GaussianMixture(n_components=i, random_state=0)clusterer.fit(reduced_data)preds = clusterer.predict(reduced_data)centers = clusterer.means_sample_preds = clusterer.predict(pca_samples)#邊界系數(shù),[-1, 1] 越大越清晰score = silhouette_score(reduced_data, preds)print("For clusters = ", i,"The score is :", score)if (score > best_score):best_clusterer = clustererbest_score = scorebest_cluster = iprint("For clusters = ",best_clusterer.n_components,'The score is best!')
For clusters = 2 The score is : 0.4099683245278784
For clusters = 3 The score is : 0.40194571937717044
For clusters = 4 The score is : 0.31214203486720543
For clusters = 5 The score is : 0.276392991643947
For clusters = 6 The score is : 0.30088433392758923
For clusters = 7 The score is : 0.22666071211515948
For clusters = 8 The score is : 0.26631198668498973
For clusters = 2 The score is best!
聚類可視化
使用上述評分指標為你的聚類算法選擇最佳聚類數(shù)量后,可視化結果:
# Display the results of the clustering from implementation
vs.cluster_results(reduced_data, preds, centers, pca_samples)
數(shù)據(jù)恢復
上述可視化圖表中出現(xiàn)的每個聚類都有一個中心點。這些中心(或均值)并不是來自數(shù)據(jù)中的特定數(shù)據(jù)點,而是相應聚類預測的所有數(shù)據(jù)點的平均值。對于創(chuàng)建客戶細分這個問題來說,聚類的中心點對應的是該細分的平均客戶數(shù)量。因為數(shù)據(jù)目前是降維狀態(tài)并且進行了對數(shù)縮放,我們可以通過應用逆轉換從這些數(shù)據(jù)點中還原代表性客戶支出:
- 使用
pca.inverse_transform
對centers
應用逆轉換,并將新的中心點賦值給log_centers
。 - 使用
np.exp
對log_centers
應用np.log
的逆函數(shù),并將真正的中心點賦值給true_centers
。
# TODO: Inverse transform the centers
log_centers = pca.inverse_transform(centers)true_centers = np.exp(log_centers)segments = ['Segment {}'.format(i) for i in range(0,len(centers))]
true_centers = pd.DataFrame(np.round(true_centers), columns = data.keys())
true_centers.index = segments
display(true_centers)
思考上述代表性數(shù)據(jù)點的每個產(chǎn)品類別的總購買成本,并參考該項目開頭的數(shù)據(jù)集統(tǒng)計學描述(具體而言,查看各個特征點的均值)。每個客戶細分可以表示什么樣的場所集合?
-
segment0 Fres、Milk、Grocery、Frozen、Detergents_Paper和Delicatessen所有特征的均少于均值應該是小型零售店;
-
segment1 Milk、Detergents_Paper、Grocery 超過均值、其他均低于平均值數(shù),應該代表牛奶咖啡廳;
看看每個樣本點預測屬于哪個聚類:
# Display the predictions
for i, pred in enumerate(sample_preds):print("Sample point", i, "predicted to be in Cluster", pred)
Sample point 0 predicted to be in Cluster 1
Sample point 1 predicted to be in Cluster 1
Sample point 2 predicted to be in Cluster 0
display(pd.concat([true_centers,samples]))
樣本0和樣本1 在Detergents_papaer,Grocery,Milk,更接近聚類1的中心點,其他可能更聚類1樣本2在Fresh,Detergents_Paper,Frozen,Grocery,Milk均接近聚類0的中心點,更可能屬于類別0。每個樣本點的預測與此細分保持一致
七、總結
在最后一部分,研究可以對聚類數(shù)據(jù)采用的方式。思考特定的送貨方案對不同的客戶群(即客戶細分)有何不同影響。以及思考為每個客戶設定標簽(該客戶屬于哪個細分)可以如何提供關于客戶數(shù)據(jù)的額外特征。最后,比較客戶細分和數(shù)據(jù)中的隱藏變量,看看聚類分析是否發(fā)現(xiàn)了特定的關系。
可視化底層分布圖
在該項目開始時,我們提到我們會從數(shù)據(jù)集中排除 'Channel'
和 'Region'
特征,以便在分析過程中側重于客戶產(chǎn)品類別。通過向數(shù)據(jù)集中重新引入 'Channel'
特征,在考慮之前對原始數(shù)據(jù)集應用的相同 PCA 降維算法時,發(fā)現(xiàn)了有趣的結構。
看看每個數(shù)據(jù)點在降維空間里為何標記成 'HoReCa'
(酒店/餐廳/咖啡廳)或 'Retail'
。此外,將發(fā)現(xiàn)樣本數(shù)據(jù)點在圖中被圈起來了,這樣可以標識它們的標簽。
# Display the clustering results based on 'Channel' data
vs.channel_results(reduced_data, outliers, pca_samples)
補充總結
我選擇的聚類算法和聚類數(shù)量
,與酒店/餐廳/咖啡廳客戶和零售客戶分布圖相比,效果還不錯,但也還存在一些異常數(shù)據(jù)。根據(jù)Dimension看到劃分’零售客戶’或者是’酒店/餐廳/咖啡廳客戶’分布還不錯。這些分類和之前的客戶細分定義大體一致。但選擇的樣本數(shù)據(jù)點屬于異常數(shù)據(jù),咖啡廳購買的商品類別和其他餐館不一致,而零售商由于沒有特別類別的需求和購買量,基本上各種商品都比較少且雜,因此會處于邊界周邊。
文末免費送書福利
《機器學習平臺架構實戰(zhàn)》免費包郵送出3本!
內(nèi)容介紹:
《機器學習平臺架構實戰(zhàn)》詳細闡述了與機器學習平臺架構相關的基本解決方案,主要包括機器學習和機器學習解決方案架構,機器學習的業(yè)務用例,機器學習算法,機器學習的數(shù)據(jù)管理,開源機器學習庫,Kubernetes容器編排基礎設施管理,開源機器學習平臺,使用AWS機器學習服務構建數(shù)據(jù)科學環(huán)境,使用AWS機器學習服務構建企業(yè)機器學習架構,高級機器學習工程,機器學習治理、偏差、可解釋性和隱私,使用人工智能服務和機器學習平臺構建機器學習解決方案等內(nèi)容。此外,本書還提供了相應的示例、代碼,以幫助讀者進一步理解相關方案的實現(xiàn)過程。
抽獎方式: 評論區(qū)隨機抽取3位小伙伴免費送出!
參與方式: 關注博主、點贊、收藏、評論區(qū)評論“人生苦短,我用Python!”(切記要點贊+收藏,否則抽獎無效,每個人最多評論三次!)
活動截止時間: 2023-12-17 20:00:00
當當: https://product.dangdang.com/29625469.html
京東: https://item.jd.com/13855627.html
😄😄😄名單公布方式: 下期活動開始將在評論區(qū)和私信一并公布,中獎者請三天內(nèi)提供信息😄😄😄