【机器学习】KMeans+PCA原理及Python代码实现

1. 代码实现

from sklearn.cluster import KMeans
from sklearn.decomposition import PCA
from sklearn import metrics
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

df = pd.read_excel('ALL_AML_data.xlsx')
labels = pd.read_excel('ALL_AML_labels.xlsx')
y_true = labels.iloc[:,0].values # 取Excel中的值

# 将真实的分类标准和KMeans的分类标准一致
j = 0
for i in y_true:
    if i == 2:
        y_true[j] = 1
    if i == 1:
        y_true[j] = 2
    j = j+1

print("y_true",y_true)

# 将用于聚类的数据的特征的维度降至2维,并输出降维后的数据
pca = PCA(n_components=2)
new_pca = pd.DataFrame(pca.fit_transform(df))

kmeans = KMeans(n_clusters=3, random_state=10).fit(df)
y_pred = kmeans.labels_ + 1
print("y_pred",y_pred)

# MSE(均方误差)(Mean Square Error)
print("MSE:", metrics.mean_squared_error(y_true, y_pred))
# RMSE (均方根误差)(Root Mean Square Error)
print("RMSE:", np.sqrt(metrics.mean_squared_error(y_true, y_pred)))
# MAE (平均绝对误差)(Mean Absolute Error)
print("MAE:", metrics.mean_absolute_error(y_true, y_pred))
# 准确率
print("ACCURACY:", metrics.accuracy_score(y_true, y_pred))
print(metrics.accuracy_score(y_true, y_pred, normalize=False))

# 可视化
d = new_pca[y_pred == 1]
plt.plot(d[0], d[1], 'r.')
d = new_pca[y_pred == 2]
plt.plot(d[0], d[1], 'go')
d = new_pca[y_pred == 3]
plt.plot(d[0], d[1], 'b*')
plt.gcf().savefig('kmeans.png')
plt.show()

2. 运行结果:

y_true [2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 3 3 3 3 3 3 3 3 3 3 3]
y_pred [2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 3 3 2 2 2 3 2 2 3]
MSE: 0.1891891891891892
RMSE: 0.43495883620084
MAE: 0.1891891891891892
ACCURACY: 0.8108108108108109
30

在这里插入图片描述

参考文献

手把手教你利用Python处理数据
如何使用python读取txt文件中的数据
python-时间
Python 日期和时间
python使用pandas和xlsxwriter读写xlsx文件
python pandas (ix & iloc &loc) 的区别
MSE(均方误差)、RMSE (均方根误差)、MAE (平均绝对误差)
Python sklearn.cluster模块,常用函数和类
利用python的KMeans和PCA包实现聚类算法
计算机的潜意识

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
针对机器学习课程设计的 Python 代码实现,以下是一些常见的机器学习算法和实现方式: 1. 监督学习算法:包括线性回归、逻辑回归、决策树、随机森林、支持向量机等。 - 线性回归实现: ```python from sklearn.linear_model import LinearRegression model = LinearRegression() model.fit(X_train, y_train) y_pred = model.predict(X_test) ``` - 决策树实现: ```python from sklearn.tree import DecisionTreeClassifier model = DecisionTreeClassifier() model.fit(X_train, y_train) y_pred = model.predict(X_test) ``` 2. 无监督学习算法:包括聚类、降维、关联规则等。 - 聚类实现: ```python from sklearn.cluster import KMeans model = KMeans(n_clusters=3) model.fit(X) labels = model.predict(X) ``` - 降维实现: ```python from sklearn.decomposition import PCA model = PCA(n_components=2) X_pca = model.fit_transform(X) ``` 3. 深度学习算法:包括神经网络、卷积神经网络、循环神经网络等。 - 神经网络实现: ```python from keras.models import Sequential from keras.layers import Dense model = Sequential() model.add(Dense(64, activation='relu', input_dim=input_dim)) model.add(Dense(1, activation='sigmoid')) model.compile(optimizer='sgd', loss='binary_crossentropy', metrics=['accuracy']) model.fit(X_train, y_train, epochs=100, batch_size=32) ``` 以上是一些常见的机器学习算法和 Python 代码实现,希望对您有所帮助。如果您有其他问题或者需要更具体的指导,可以随时向我提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值