【问题标题】:Use Kmodes in Python with a big csv file在 Python 中使用带有大 csv 文件的 Kmodes
【发布时间】:2019-10-02 22:45:41
【问题描述】:

我需要一些帮助来解决我遇到的问题。我有一个大的 csv 文件 (6239292, 5) 并且想要执行无监督机器学习技术 (kmodes)。我的代码是这样的:

import numpy as np
import pandas as pd
print("initialising")


syms = np.genfromtxt('foo.csv', delimiter = ';', dtype=str, skip_header=1, invalid_raise=False)[:, 0:]

print(syms.shape)

X = np.genfromtxt('foo.csv',dtype=object, delimiter=';', invalid_raise=False, skip_header=1)[:, 1:]

X[1:, 0] = X[1:, 0].astype(float) 

from kmodes.kprototypes import KPrototypes

print("Imported successfully")
kproto = KPrototypes(n_clusters=6, init='random', n_init=2, verbose=2)
clusters = kproto.fit_predict(X, categorical=[2,1,3,])

由于文件的大小,它需要很长时间。有什么技术可以用来减少时间吗?提前谢谢!

【问题讨论】:

    标签: python numpy machine-learning unsupervised-learning


    【解决方案1】:

    您可以选择前 n 行,如:

    read_csv(..., nrows=999999)
    

    或跳过一些行,然后选择接下来的 n 行:

    read_csv(..., skiprows=1000000, nrows=999999)
    

    由于Central Limit Theorem,您的结果应该没有问题

    中心极限定理 (CLT) 是一种统计理论,它指出 给定来自具有有限的总体的足够大的样本量 方差水平,来自同一总体的所有样本的平均值 将大约等于总体的平均值。

    【讨论】:

    • 感谢您的回答。从未想过从更统计的角度来解决问题 - 一直在寻找 IT 解决方案。
    • 很高兴你喜欢它,如果它按预期工作,请告诉我
    猜你喜欢
    • 2018-11-18
    • 2020-11-10
    • 1970-01-01
    • 1970-01-01
    • 2019-02-27
    • 2012-03-04
    • 1970-01-01
    • 2021-09-02
    • 1970-01-01
    相关资源
    最近更新 更多