python读取文本数据到矩阵(用于scikit-learn输入)


def load_data():
    train = numpy.loadtxt(open("D:\\dev_src\\python\\weibo_keywords\\extra_dict\\word_feature_train.csv", "rb"), delimiter=",", skiprows=0)
    test = numpy.loadtxt(open("D:\\dev_src\\python\\weibo_keywords\\extra_dict\\word_feature_test.csv", "rb"), delimiter=",", skiprows=0)

    train_x = train[:,0:2]
    train_y = train[:,2]

好的,如果你不想使用scikit-learn库,你可以手动实现k-medoids算法。以下是一个简单的实现代码: ```python import numpy as np import pandas as pd import random from scipy.spatial.distance import pdist, squareform # 读取csv文件 data = pd.read_csv('your_file.csv') # 定义k-medoids算法 def kmedoids(D, k, tmax=100): m, n = D.shape # 初始化中心点 index = np.arange(m) np.random.shuffle(index) M = index[:k] # 计算距离矩阵 D = squareform(pdist(D)) # 初始化标签 C = np.argmin(D[:, M], axis=1) # 迭代更新中心点和标签 for t in range(tmax): for k in range(m): # 选择一个非中心点 if k not in M: # 计算新的中心点 M_temp = M.copy() M_temp[random.choice(range(len(M)))] = k # 计算新的标签 C_temp = np.argmin(D[:, M_temp], axis=1) # 比较新的标签和旧的标签的轮廓系数 if metrics.silhouette_score(D, C_temp) > metrics.silhouette_score(D, C): M = M_temp C = C_temp return M, C # 调用kmedoids函数进行聚类 M, C = kmedoids(data.values, 2) # 计算轮廓系数 D = squareform(pdist(data.values)) silhouette_score = metrics.silhouette_score(D, C) # 将聚类结果添加到数据集中 data['cluster'] = C # 可视化聚类结果 sns.scatterplot(x='x_axis', y='y_axis', hue='cluster', data=data) # 显示图形 plt.show() ``` 这个实现代码中,我们手动实现了k-medoids算法,并使用了轮廓系数评价聚类效果,最后使用matplotlib和seaborn库可视化聚类结果。希望对你有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值