簡體   English   中英

如何使用scikit-learn對二進制數據集進行分類?

[英]How to do classification in binary data set using scikit-learn?

我有以下二進制數據集:

[
    [1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1],
    [1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1],
    [1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0],
    [1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0],
    [1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0]
]

我想將其群集(分散)為3個部分,以使最相似的數組(數組中相同位置的0和1s)聚集在同一組中。

由於我已經知道二進制數據不能立即聚類並且需要減小尺寸。 多種學習算法能夠做到這一點。 我試圖將其減小到2維,然后將其分散在圖上以使其更加用戶友好,多維縮放似乎是最有前途的算法 但是,當我將其放在我的數據集中時,它仍然返回相同的數據集而沒有任何減少:

mds = MDS(n_components=2, metric=True, n_init=4, max_iter=300, verbose=0, eps=0.001, n_jobs=1, random_state=None, dissimilarity='euclidean')
mds.fit(X)
return X

知道我做錯了什么或我想念什么嗎? 我正在嘗試將此數據集縮小為2維,然后將其聚類到2d散點圖上,以便基於0和1s位置的相似性將相似的數組組合在一起並緊密組合。

fit()僅學習數據,而不以任何方式對其進行更改。 您需要調用fit_transform()以獲取新的轉換數據。 像這樣:

newX = mds.fit_transform(X)

newX將是您想要的具有2個組件的數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM