トレーニング中に表示されず、テストデータのみを含む新しいデータをクラスタリングしようとしています。トレーニングファイルには5つのクラスがあり、テストデータには7つのクラス(5 + 2)があり、2つは新しいクラスです。今、k-meanを実行して、新しいクラスを追加するための適切なクラスターを見つけたり、クラスターに近くないクラスターに対して新しいクラスターを作成したりします。異なるクラスタリングラベル
これは私のコードの一部です:
print("Reading training data...")
#mydata = pd.read_csv('.\KDDTrain.csv', header=0)
mydata = pd.read_csv('.\PTraining.csv', header=0)
# select all but the last column as data
X_train = mydata.ix[1:, :-1]
X_train = np.array(X_train)
n_samples, n_features = np.shape(X_train)
# print np.shape(X_train)
# select last column as target/class
y_train = mydata.ix[1:, n_features]
y_train = np.array(y_train)
# encode target labels with numeric values from 0 to no of classes
# print "Encoding class labels..."
from sklearn import preprocessing
label_encoder = preprocessing.LabelEncoder()
label_encoder.fit(y_train)
# print list(label_encoder.classes_)
# print 'total no of classes in dataset=' + str(len(label_encoder.classes_))
y_train = label_encoder.transform(y_train)
# n_samples, n_features = data.shape
n_digits = len(np.unique(y_train))
print("Training data statistics")
print("n_attack_catagories: %d, \t n_samples %d, \t n_features %d"
% (n_digits, n_samples, n_features))
sample_size = 300
# Read test data
mytestdata = pd.read_csv('.\KDDTest+.csv', header=0)
print("Reading test data...")
# select all but the last column as data
X_test = mytestdata.ix[1:, :-1]
X_test = np.array(X_test)
# print np.shape(X_test)
# select last column as target/class
y_test = mytestdata.ix[1:, n_features]
# print "actual labels"
# print y_test
y_test = label_encoder.transform(y_test)
# print "Encoded labels"
# print y_test
y_test = np.array(y_test)
n_samples_test, n_features_test = np.shape(X_test)
n_digits_test = len(np.unique(y_test))
print("Test data statistics")
print("n_attack_catagories: %d, \t n_samples %d, \t n_features %d"
% (n_digits_test, n_samples_test, n_features_test))
print(79 * '_')
File "C:/Users/aalsham4/PycharmProjects/clusteringtask/clustering.py", line 87, in <module>
y_test = label_encoder.transform(y_test)
File "C:\Users\aalsham4\AppData\Local\Continuum\Miniconda3\lib\site-packages\sklearn\preprocessing\label.py", line 153, in transform
raise ValueError("y contains new labels: %s" % str(diff))
ValueError: y contains new labels: ['calss6' 'class7' ]
を与えて、私は私がやっている場合はわからないんだけどこれはラベル付きクラスを正しくクラスタリングするかどうかを決定します。 Anony-ムース@として
ようこそStackOverflow。ヘルプドキュメントの投稿ガイドラインを読み、それに従ってください。 [最小、完全で検証可能な例](http://stackoverflow.com/help/mcve)がここに適用されます。 MCVEコードを投稿して問題を正確に記述するまでは、効果的にお手伝いすることはできません。特に、データファイルなしで問題を再現することはできません。 – Prune
私にはトレーニングデータが含まれていなければならず、別のデータにはテストデータが含まれています。テストデータファイルには7つのクラスがあり、トレーニングデータファイルには5クラスしかありません。これら2つのクラスが私のモジュールが訓練した5つのクラスのいずれかと似ているかどうかを調べるために、k-meansクラスタリングを適用したいと思います。 これは適用できますか? – Adel
クラスをお持ちの場合は、k-meansではなく、クラシファイアを使用してください。あなたの問題に間違ったツール。 KDDCup99データを使用しないでください。欠陥があります。 –