日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

机器学习实战-聚类分析KMEANS算法-25

發布時間:2024/9/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习实战-聚类分析KMEANS算法-25 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

KMEANS算法-NBA球隊實力聚類分析

from sklearn.cluster import KMeans import numpy as np import matplotlib.pyplot as plt import pandas as pd from sklearn.preprocessing import MinMaxScaler data = pd.read_csv('nba.csv') data.head()

minmax_scaler = MinMaxScaler() # 標準化數據 X = minmax_scaler.fit_transform(data.iloc[:,1:]) X[:5]

# 肘部法則 loss = [] for i in range(2,10):model = KMeans(n_clusters=i).fit(X)loss.append(model.inertia_)plt.plot(range(2,10),loss) plt.xlabel('k') plt.ylabel('loss') plt.show()

k = 4 model = KMeans(n_clusters=k).fit(X)# 將標簽整合到原始數據上 data['clusters'] = model.labels_data.head()

for i in range(k):print('clusters:',i)label_data = data[data['clusters'] == i].iloc[:,0]print(label_data.values)

KMEANS算法-廣告效果聚類分析

import numpy as np import pandas as pd from sklearn.preprocessing import MinMaxScaler from sklearn.cluster import KMeans import matplotlib.pyplot as plt import seaborn as sns %matplotlib inline# 顯示中文 plt.rcParams['font.family'] = ['sans-serif'] plt.rcParams['font.sans-serif'] = ['SimHei'] # 載入數據,空格為間隔 df = pd.read_csv('ad_performance.txt', delimiter='\t')# 數據概觀 df.tail(5)

df.isnull().sum()

df.describe().round(3)

plt.figure(figsize=(12,10)) # 畫熱力圖,數值為兩個變量之間的相關系數 p=sns.heatmap(df.corr(), annot=True) plt.show()

# 使用平均值替換缺失值 df['平均停留時間'] = df['平均停留時間'].fillna(df['平均停留時間'].mean())# 字符串分類轉整數分類 conver_cols = ['素材類型', '廣告類型', '合作方式', '廣告尺寸', '廣告賣點']# 用get_dummies進行one hot編碼 dummy_df = pd.get_dummies(df[conver_cols])# 清除原來的特征 df2 = df.drop(conver_cols, axis=1) # 當axis = 1的時候,concat就是行對齊,然后將不同列名稱的兩張表合并 df2 = pd.concat([df2, dummy_df], axis=1) df2.tail().T

# 獲取數值特征轉換成矩陣 scale_matrix = df2.iloc[:, 1:8] # 建立MinMaxScaler模型對象 minmax_scaler = MinMaxScaler() # 標準化數據 df2.iloc[:, 1:8] = minmax_scaler.fit_transform(scale_matrix) X = np.array(df2.iloc[:,1:])# 肘部法則 loss = [] for i in range(2,10):model = KMeans(n_clusters=i).fit(X)loss.append(model.inertia_)plt.plot(range(2,10),loss) plt.xlabel('k') plt.ylabel('loss') plt.show()

k = 4 model = KMeans(n_clusters=k).fit(X)# 將最優情況的標簽整合到原始數據上 df['clusters'] = model.labels_# 每個聚類的樣本量 cluster_count = pd.DataFrame(df.clusters.value_counts()).rename(columns={'clusters': 'counts'}) # 獲取樣本占比 cluster_count['percentage'] = (cluster_count['counts']/cluster_count['counts'].sum()).round(2) cluster_count.head()

# 設置顏色 colors='yellowgreen','gold','lightskyblue','lightcoral' # 設置分離 explode=0.1,0.1,0.1,0.1 # 設置畫幅 plt.figure(figsize=(5, 5)) # 作圖 plt.pie(cluster_count.counts,explode=explode,labels=cluster_count.index,colors=colors,autopct='%1.1f%%',shadow=True) plt.show()

df.describe()


# 空列表,用于存儲最終合并后的所有特征信息 cluster_features = [] # 讀取每個類索引 for line in range(k): # 獲得特定類的數據label_data = df[df['clusters'] == line] # 獲得數值型數據特征part1_data = label_data.iloc[:, 1:8] # 得到數值型特征的描述性統計信息part1_desc = part1_data.describe().round(3) # 得到數值型特征的均值merge_data1 = part1_desc.iloc[1, :] # 獲得字符串型數據特征part2_data = label_data.iloc[:, 8:-1] # 獲得字符串型數據特征的描述性統計信息part2_desc = part2_data.describe(include='all') # 獲得字符串型數據特征的最頻繁值merge_data2 = part2_desc.iloc[2, :] # 將數值型和字符串型典型特征沿行合并merge_line = pd.concat((merge_data1, merge_data2), axis=0) # 將每個類別下的數據特征追加到列表cluster_features.append(merge_line) # 將列表轉化為矩陣 cluster_pd = pd.DataFrame(cluster_features) # 將信息合并 all_cluster_set = cluster_count.join(cluster_pd).sort_index().T all_cluster_set


聚類0:各方面的特征都不明顯,換句話說就是效果比較平庸,沒有明顯的優勢或短板。但這些“中庸”的廣告媒體卻構成了整個廣告的主體。因此需要業務部門重點考慮其投放的實際價值。

聚類1:這類廣告媒體在訪問深度、平均停留時間、訂單轉化率以及平均搜索量等流量質量的特征上的表現較好,除了注冊轉化率較低外,該類渠道各方面比較均衡。更重要的是該類媒體的數量占據了31%的數量,因此是一類規模較大且綜合效果較好的媒體。聚類1的廣告渠道的短板是日均UV和平均注冊率,因此該類媒體無法為企業帶來大量的流量以及新用戶。不過這類廣告訂單轉化率高適合有關訂單轉化的提升。

聚類2:這類廣告媒體渠道效果很好,特別是日均UV和用戶停留時間表現很好,但綜合其只占8%的媒體數量,由于實例比較少,不排除是因為個例導致效果擴大,可以合理增加此類渠道投放,繼續深入測試其真實效果。

聚類3:這類渠道其日均UV還不錯,平均注冊率非常突出,證明這是一類“引流”+“拉新”的渠道,適合在大規模的廣告宣傳和引流時使用。

總結

以上是生活随笔為你收集整理的机器学习实战-聚类分析KMEANS算法-25的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。