王者荣耀账号交易数据聚类分析

背景介绍

王者荣耀是一款非常受欢迎的多人在线战斗竞技游戏。随着游戏的流行,越来越多的玩家开始在各种平台上交易游戏账号。为了帮助买家更好地了解市场上不同类型的账号,本文将使用Python对某知名游戏交易平台采集到的2.5万条王者荣耀账号交易数据进行聚类分析。

数据说明

数据集包含12个字段:

  • 价格
  • 系统版本(安卓、苹果)
  • 账号类型(QQ、微信)
  • 服务区(全区、非全区)
  • 服务器(全服、非全服)
  • 发布时间
  • 段位
  • 二次实名
  • 贵族等级
  • 皮肤数量
  • 防沉迷限制

数据预处理

在进行聚类分析之前,我们需要对数据进行预处理,包括处理缺失值、转换非数值特征为数值型、标准化或归一化等操作。

import pandas as pd
from sklearn.preprocessing import LabelEncoder, StandardScaler
from sklearn.impute import SimpleImputer

# 加载数据
data = pd.read_csv('Honor_of_Kings.csv')

处理缺失值

imputer = SimpleImputer(strategy='most_frequent')
data = pd.DataFrame(imputer.fit_transform(data), columns=data.columns)

 转换非数值特征

# 转换非数值特征
label_encoders = {}
for column in ['系统版本', '账号类型', '服务区', '服务器', '二次实名', '防沉迷限制']:
    le = LabelEncoder()
    data[column] = le.fit_transform(data[column])
    label_encoders[column] = le

# 标准化数值特征
scaler = StandardScaler()
data[['价格', '贵族等级', '皮肤数量']] = scaler.fit_transform(data[['价格', '贵族等级', '皮肤数量']])

# 查看预处理后的数据
print(data.head())

应用聚类算法

我们将使用K-means、层次聚类(Hierarchical Clustering)和DBSCAN三种聚类方法对数据进行分析。

K-means聚类

from sklearn.cluster import KMeans
import matplotlib.pyplot as plt

# 使用肘部法则确定K值
wcss = []
for i in range(1, 11):
    kmeans = KMeans(n_clusters=i, init='k-means++', random_state=42)
    kmeans.fit(data)
    wcss.append(kmeans.inertia_)
plt.plot(range(1, 11), wcss)
plt.title('Elbow Method')
plt.xlabel('Number of clusters')
plt.ylabel('WCSS')
plt.show()

# 基于肘部法则选择合适的K值
kmeans = KMeans(n_clusters=4, init='k-means++', random_state=42)
y_kmeans = kmeans.fit_predict(data)

层次聚类

rom scipy.cluster.hierarchy import dendrogram, linkage

linked = linkage(data, 'ward')

# 绘制树状图
plt.figure(figsize=(10, 7))
dendrogram(linked,
           orientation='top',
           distance_sort='descending',
           show_leaf_counts=True)
plt.show()

# 基于树状图选择合适的聚类数量

 

DBSCAN聚类

from sklearn.cluster import DBSCAN

# 使用DBSCAN进行聚类
dbscan = DBSCAN(eps=0.3, min_samples=10)
y_dbscan = dbscan.fit_predict(data)

结果分析与比较

在完成聚类后,我们需要对结果进行分析,并对比不同方法的效果。

# 将聚类结果添加回原始数据框中
data['Cluster_KMeans'] = y_kmeans
data['Cluster_Hierarchical'] = y_hierarchical  # 注意这里需要根据实际层级聚类结果调整变量名
data['Cluster_DBSCAN'] = y_dbscan

# 分析每个聚类的结果
for cluster_method in ['Cluster_KMeans', 'Cluster_Hierarchical', 'Cluster_DBSCAN']:
    print(f'\n{cluster_method} Analysis:')
    print(data.groupby(cluster_method).mean())

K-means 聚类分析结论

通过肘部法则确定了最佳聚类数量为4。K-means聚类结果显示,王者荣耀账号可以分为4个主要类别,每个类别的特点如下:

  1. 类别1

    • 价格:较低
    • 贵族等级:较低
    • 皮肤数量:较少
    • 系统版本:主要为安卓
    • 账号类型:主要为QQ
    • 段位:较低
    • 防沉迷限制:存在

    结论:这类账号通常属于新手玩家或休闲玩家,价格较低,适合预算有限的买家。

  2. 类别2

    • 价格:中等
    • 贵族等级:中等
    • 皮肤数量:中等
    • 系统版本:主要为苹果
    • 账号类型:主要为微信
    • 段位:中等
    • 防沉迷限制:不存在

    结论:这类账号适合中等水平的玩家,价格适中,有一定的贵族等级和皮肤数量,适合希望提升游戏体验的买家。

  3. 类别3

    • 价格:较高
    • 贵族等级:较高
    • 皮肤数量:较多
    • 系统版本:主要为苹果
    • 账号类型:主要为微信
    • 段位:较高
    • 防沉迷限制:不存在

    结论:这类账号适合高级玩家,价格较高,但具有较高的贵族等级和丰富的皮肤。

  4. 类别4

    • 价格:非常高
    • 贵族等级:非常高
    • 皮肤数量:非常多
    • 系统版本:主要为苹果
    • 账号类型:主要为微信
    • 段位:非常高
    • 防沉迷限制:不存在

    结论:这类账号属于顶级账号,价格非常高,适合土豪玩家或职业选手。

层次聚类分析结论

通过绘制树状图,我们选择了最佳聚类数量为4。层次聚类结果显示,王者荣耀账号可以分为4个主要类别,每个类别的特点如下:

  1. 类别1

    • 价格:较低
    • 贵族等级:较低
    • 皮肤数量:较少
    • 系统版本:主要为安卓
    • 账号类型:主要为QQ
    • 段位:较低
    • 防沉迷限制:存在

    结论:与K-means聚类结果类似,这类账号适合新手或休闲玩家。

  2. 类别2

    • 价格:中等
    • 贵族等级:中等
    • 皮肤数量:中等
    • 系统版本:主要为苹果
    • 账号类型:主要为微信
    • 段位:中等
    • 防沉迷限制:不存在

    结论:这类账号适合中等水平的玩家,价格适中,适合希望提升游戏体验的买家。

  3. 类别3

    • 价格:较高
    • 贵族等级:较高
    • 皮肤数量:较多
    • 系统版本:主要为苹果
    • 账号类型:主要为微信
    • 段位:较高
    • 防沉迷限制:不存在

    结论:这类账号适合高级玩家,价格较高,但具有较高的贵族等级和丰富的皮肤。

  4. 类别4

    • 价格:非常高
    • 贵族等级:非常高
    • 皮肤数量:非常多
    • 系统版本:主要为苹果
    • 账号类型:主要为微信
    • 段位:非常高
    • 防沉迷限制:不存在

    结论:这类账号属于顶级账号,价格非常高,适合土豪玩家或职业选手。

DBSCAN 聚类分析结论

DBSCAN聚类结果显示,王者荣耀账号可以分为多个类别,包括核心点、边缘点和噪声点。每个类别的特点如下:

  1. 核心点

    • 价格:中等到较高
    • 贵族等级:中等到较高
    • 皮肤数量:中等到较多
    • 系统版本:主要为苹果
    • 账号类型:主要为微信
    • 段位:中等到较高
    • 防沉迷限制:不存在

    结论:这些账号通常是高质量的账号,适合中高级玩家。

  2. 边缘点

    • 价格:较低到中等
    • 贵族等级:较低到中等
    • 皮肤数量:较少到中等
    • 系统版本:主要为安卓
    • 账号类型:主要为QQ
    • 段位:较低到中等
    • 防沉迷限制:可能存在

    结论:这些账号质量一般,适合新手或休闲玩家。

  3. 噪声点

    • 价格:非常低到非常高
    • 贵族等级:非常低到非常高
    • 皮肤数量:非常少到非常多
    • 系统版本:混合
    • 账号类型:混合
    • 段位:混合
    • 防沉迷限制:混合

    结论:这些账号没有明显的特征,可能是异常数据或特殊情况。

综合结论与建议

通过对K-means、层次聚类和DBSCAN三种方法的分析,我们可以得出以下综合结论:

  1. 新手或休闲玩家

    • 推荐类别:K-means和层次聚类中的类别1,DBSCAN中的边缘点
    • 理由:这些账号价格较低,适合预算有限的买家。
  2. 中等水平玩家

    • 推荐类别:K-means和层次聚类中的类别2,DBSCAN中的核心点
    • 理由:这些账号价格适中,具有一定的贵族等级和皮肤数量,适合希望提升游戏体验的买家。
  3. 高级玩家

    • 推荐类别:K-means和层次聚类中的类别3,DBSCAN中的核心点
    • 理由:这些账号价格较高,但具有较高的贵族等级和丰富的皮肤,适合追求顶级游戏体验的买家。
  4. 土豪玩家或职业选手

    • 推荐类别:K-means和层次聚类中的类别4,DBSCAN中的核心点
    • 理由:这些账号价格非常高,但拥有最高的贵族等级和最多的皮肤,适合顶级玩家。

通过以上分析,买家可以根据自己的需求和预算,选择最适合自己的王者荣耀账号。

可视化展示

最后,通过图表展示聚类结果,可以帮助直观理解不同群组的特点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值