私は以下のpandas DataFrameを持っています。パンダのデータフレーム:マシンラーニングなしで値ごとにグループをクラスタリングする方法は?
import pandas as pd
df = pd.read_csv('filename.csv')
print(df)
A B C D
0 2 0 11 0.053095
1 2 0 11 0.059815
2 0 35 11 0.055268
3 0 35 11 0.054573
4 0 1 11 0.054081
5 0 2 11 0.054426
6 0 1 11 0.054426
7 0 1 11 0.054426
8 42 7 3 0.048208
9 42 7 3 0.050765
10 42 7 3 0.05325
....
問題は、データが当然グループに「クラスタ化」されていることですが、このデータは指定されていません。上記から、行0-1は1つのグループであり、行2〜3はグループであり、行4〜7はグループであり、8〜10はグループです。
私はこの情報を転嫁する必要があります。マシン学習を使うことができます。しかし、パンダだけを使ってこれを行うことは可能ですか?
ユーザーはこれらのグループを作成するために列の値をグループ化できますか?問題は、値が正確なではないということです。第3グループの列B
には、グループ1,2,1,1があります。
です。しかし、私が正しく理解すれば、これは複数の列に適用する必要があります。最初の列にbin +/-を持つクラスタがあるかどうかを確認し、2番目の列などが存在するかどうかを確認します。 それ以外の場合は、1つのクラスタ内に複数のクラスタが存在する可能性があります。 – ShanZhengYang
あなたのビンサイズが大きすぎる場合に起こります。あなたは1次元のシルエット係数を見つけるために最適化することができますが、その時点でk-meansを使ってデータの多次元性を尊重する方が良いでしょう。 この回答はクラスタにgroupbyを使用する条件を満たしているため、これは列のフィーチャエンジニアリングの方法です。 – breucopter
ビンサイズ+/- 1を使用します。グループ行2-3とグループ行4-7は、2つのグループにクラスター化されますか?列Aの値は同じですか? – ShanZhengYang