# 对不同K值的聚类效果进行评分 for i inrange(2,13): kmeans=KMeans(n_clusters=i).fit(train_data) score=calinski_harabaz_score(train_data,kmeans.labels_) print('聚类数 =%d 的calinski_harabaz分数为:%f'%(i,score))
vw_label = {} print(str_carbody + '原始数据如下') for index, row in data_final_haveID.iterrows(): if row["CarName"].startswith("volkswagen"): cname = row["CarName"] cbody = row["carbody"] lbl = row["label"] print(f"{index}\t{cname:<30}{cbody:<10}\t{lbl}") # 记录 volkswagen 不同型号对应类别 if lbl notin vw_label: vw_label[lbl] = [(cname, cbody)] else: vw_label[lbl].append((cname, cbody))
1 2 3 4 5 6 7 8 9 10
sedan原始数据如下 182 volkswagen rabbit sedan 6 183 volkswagen 1131 deluxe sedan sedan 6 184 volkswagen model 111 sedan 2 185 volkswagen type3 sedan 5 186 volkswagen 411 (sw) sedan 5 187 volkswagen super beetle sedan 2 188 volkswagen dasher sedan 5 191 volkswagen rabbit sedan 5 192 volkswagen rabbit custom sedan
1 2 3 4 5 6 7 8
print("\n" + str_carbody+ "聚类最终结果如下:") for key in vw_label.keys(): print(f"类型{key}:") cluster_car = data_final_haveID.loc[car_label==key, ["CarName", "carbody"]] # 聚类的到同一簇的汽车 cmp_car = cluster_car[~cluster_car["CarName"].str.contains("volkswagen")] # 排除包含 volkswagen的部分 for car in vw_label[key]: print(car) print(cmp_car[cmp_car["carbody"]==car[1]])
sedan聚类最终结果如下: 类型6: ('volkswagen rabbit', 'sedan') CarName carbody 5 audi fox sedan 10 bmw 320i sedan 12 bmw x1 sedan 42 honda civic (auto) sedan 44 isuzu D-Max sedan 89 nissan versa sedan 90 nissan gt-r sedan 91 nissan rogue sedan 94 nissan leaf sedan 163 toyota corolla liftback sedan 165 toyota celica gt liftback sedan ('volkswagen 1131 deluxe sedan', 'sedan') CarName carbody 5 audi fox sedan 10 bmw 320i sedan 12 bmw x1 sedan 42 honda civic (auto) sedan 44 isuzu D-Max sedan 89 nissan versa sedan 90 nissan gt-r sedan 91 nissan rogue sedan 94 nissan leaf sedan 163 toyota corolla liftback sedan 165 toyota celica gt liftback sedan 类型2: ('volkswagen model 111', 'sedan') CarName carbody 63 mazda glc deluxe sedan 66 mazda rx-7 gs sedan 158 toyota corona sedan 174 toyota celica gt sedan ('volkswagen super beetle', 'sedan') CarName carbody 63 mazda glc deluxe sedan 66 mazda rx-7 gs sedan 158 toyota corona sedan 174 toyota celica gt sedan ('volkswagen rabbit custom', 'sedan') CarName carbody 63 mazda glc deluxe sedan 66 mazda rx-7 gs sedan 158 toyota corona sedan 174 toyota celica gt sedan 类型5: ('volkswagen type 3', 'sedan') CarName carbody 3 audi 100 ls sedan 4 audi 100ls sedan 6 audi 100ls sedan 41 honda civic sedan 88 mitsubishi mirage g4 sedan 101 nissan dayz sedan 103 nissan otti sedan 133 saab 99le sedan 135 saab 99gle sedan 143 subaru baja sedan 173 toyota corolla sedan 176 toyota corolla sedan ('volkswagen 411 (sw)', 'sedan') CarName carbody 3 audi 100 ls sedan 4 audi 100ls sedan 6 audi 100ls sedan 41 honda civic sedan 88 mitsubishi mirage g4 sedan 101 nissan dayz sedan 103 nissan otti sedan 133 saab 99le sedan 135 saab 99gle sedan 143 subaru baja sedan 173 toyota corolla sedan 176 toyota corolla sedan ('volkswagen dasher', 'sedan') CarName carbody 3 audi 100 ls sedan 4 audi 100ls sedan 6 audi 100ls sedan 41 honda civic sedan 88 mitsubishi mirage g4 sedan 101 nissan dayz sedan 103 nissan otti sedan 133 saab 99le sedan 135 saab 99gle sedan 143 subaru baja sedan 173 toyota corolla sedan 176 toyota corolla sedan ('volkswagen rabbit', 'sedan') CarName carbody 3 audi 100 ls sedan 4 audi 100ls sedan 6 audi 100ls sedan 41 honda civic sedan 88 mitsubishi mirage g4 sedan 101 nissan dayz sedan 103 nissan otti sedan 133 saab 99le sedan 135 saab 99gle sedan 143 subaru baja sedan 173 toyota corolla sedan 176 toyota corolla sedan
sedan聚类最终结果如下: 类型6: ('volkswagen rabbit', 'sedan') CarName carbody 5 audi fox sedan 10 bmw 320i sedan 12 bmw x1 sedan 42 honda civic (auto) sedan 44 isuzu D-Max sedan 89 nissan versa sedan 90 nissan gt-r sedan 91 nissan rogue sedan 94 nissan leaf sedan 163 toyota corolla liftback sedan 165 toyota celica gt liftback sedan ('volkswagen 1131 deluxe sedan', 'sedan') CarName carbody 5 audi fox sedan 10 bmw 320i sedan 12 bmw x1 sedan 42 honda civic (auto) sedan 44 isuzu D-Max sedan 89 nissan versa sedan 90 nissan gt-r sedan 91 nissan rogue sedan 94 nissan leaf sedan 163 toyota corolla liftback sedan 165 toyota celica gt liftback sedan 类型2: ('volkswagen model 111', 'sedan') CarName carbody 63 mazda glc deluxe sedan 66 mazda rx-7 gs sedan 158 toyota corona sedan 174 toyota celica gt sedan ('volkswagen super beetle', 'sedan') CarName carbody 63 mazda glc deluxe sedan 66 mazda rx-7 gs sedan 158 toyota corona sedan 174 toyota celica gt sedan ('volkswagen rabbit custom', 'sedan') CarName carbody 63 mazda glc deluxe sedan 66 mazda rx-7 gs sedan 158 toyota corona sedan 174 toyota celica gt sedan 类型5: ('volkswagen type 3', 'sedan') CarName carbody 3 audi 100 ls sedan 4 audi 100ls sedan 6 audi 100ls sedan 41 honda civic sedan 88 mitsubishi mirage g4 sedan 101 nissan dayz sedan 103 nissan otti sedan 133 saab 99le sedan 135 saab 99gle sedan 143 subaru baja sedan 173 toyota corolla sedan 176 toyota corolla sedan ('volkswagen 411 (sw)', 'sedan') CarName carbody 3 audi 100 ls sedan 4 audi 100ls sedan 6 audi 100ls sedan 41 honda civic sedan 88 mitsubishi mirage g4 sedan 101 nissan dayz sedan 103 nissan otti sedan 133 saab 99le sedan 135 saab 99gle sedan 143 subaru baja sedan 173 toyota corolla sedan 176 toyota corolla sedan ('volkswagen dasher', 'sedan') CarName carbody 3 audi 100 ls sedan 4 audi 100ls sedan 6 audi 100ls sedan 41 honda civic sedan 88 mitsubishi mirage g4 sedan 101 nissan dayz sedan 103 nissan otti sedan 133 saab 99le sedan 135 saab 99gle sedan 143 subaru baja sedan 173 toyota corolla sedan 176 toyota corolla sedan ('volkswagen rabbit', 'sedan') CarName carbody 3 audi 100 ls sedan 4 audi 100ls sedan 6 audi 100ls sedan 41 honda civic sedan 88 mitsubishi mirage g4 sedan 101 nissan dayz sedan 103 nissan otti sedan 133 saab 99le sedan 135 saab 99gle sedan 143 subaru baja sedan 173 toyota corolla sedan 176 toyota corolla sedan