Я пытаюсь сделать классификацию об этом наборе данных:
https://www.openml.org/d/1475
Я использую преимущественно scikit обучение, и я пытался выбрать функции по их коэффициенты корреляции:
#X is the training data
X1 = X.transpose()
cr = np.corrcoef(X1)
count = 0
index = []
for i in range(n_features):
for j in range(n_features):
if ((cr[i, j] > 0.85 or cr[i, j]<-0.85) and i != j and i < j):
print(i, '-', j, 'valore:' + str(cr[i, j]))
count = count + 1
index.append(i)
или их VIF, с этой функцией:
def VIF(dataset, n_feature):
df = dataset.iloc[:, 0:51]
df.dropna()
df = df._get_numeric_data() # This line will drop non-numeric cols
df.head()
# For each X, calculate VIF and save in dataframe
vif = pd.DataFrame()
vif["VIF Factor"] = [variance_inflation_factor(df.values, i) for i in range(df.shape[1])]
indici = []
for i in range(n_feature):
indici.append('feature:' + str(i + 1))
vif["features"] = indici
return vif
, затем я обучил и проверил данные с помощью SVM (пробуя 'rbf', 'linear' и 'poly ', с оптимальными значениями C), k-NN и MLPClassifier, но лучшим результатом была точность около 57%. Я также пытался проверить SVM с данными поезда, и в этом случае я получил очень низкую точность. Это код о SVM:
svm = SVC(kernel='rbf', decision_function_shape='ovr',C=1)
svm.fit(all_train_data, all_target)
ypred = svm.predict(all_train_data)
cf = confusion_matrix(all_target, ypred)
print(cf)
print(classification_report(all_target, ypred))
print('Accuracy on the test set is: ' + str(np.round(accuracy_score(all_target, ypred) * 100, 2)) + '%')
на сайте ниже, я нашел много экспериментальных результатов о этот набор данных, и они получили прогнозную точность рядом с моим. что я могу сделать?
https://www.openml.org/t/9985