基于KMeans对商场顾客进行聚类
背景知识:聚类是一种无监督学习
需求:对商场顾客进行聚类(打标签)
用到的核心算法:KMeans
完整代码:
# coding: utf-8 from sklearn.cluster import KMeans from sklearn import preprocessing import pandas as pd from sklearn.preprocessing import LabelEncoder # 数据加载 data = pd.read_csv('Mall_Customers.csv') # 只要这几列数据 train_x = data[["Gender", "Age", "Annual Income (k$)", "Spending Score (1-100)"]] # LabelEncoder(有几个分类,从0,1...开始做成几个标签) # Gender原来是Male、Female,现在是0,1 le = LabelEncoder() train_x['Gender'] = le.fit_transform(train_x['Gender']) # 规范化到[0,1]空间(规范化用不用都行,用的话会好一点) min_max_scaler = preprocessing.MinMaxScaler() train_x = min_max_scaler.fit_transform(train_x) # pd.DataFrame(train_x).to_csv('temp.csv', index=False) # print(train_x) # 使用KMeans聚类(n_clusters决定聚成几个类别) kmeans = KMeans(n_clusters=3) kmeans.fit(train_x) predict_y = kmeans.predict(train_x) # 合并聚类结果,插入到原数据中 result = pd.concat((data, pd.DataFrame(predict_y)), axis=1) # 给result列数据起一个列名 result.rename({0: u'聚类结果'}, axis=1, inplace=True) # 结果按照 '聚类结果' 列从小到大进行排序 result.sort_values(u'聚类结果', inplace=True) print(result) # 将结果导出到CSV文件中 result.to_csv("customer_cluster_result.csv", index=False)
聚类结果:

今天是重感冒的一天,也是英雄联盟手游海外公测的第一天。

浙公网安备 33010602011771号