Низкая точность модели дерева решений - PullRequest
0 голосов
/ 20 апреля 2020

Я делаю модель дерева решений, чтобы предсказать настроение песни. Мой набор данных содержит информацию об аудио функциях песни (таких как темп, громкость, танцевальность и т. Д. c), а целевой столбец представляет настроение песни. вот первая строка из моего набора данных:

4,0.339,0.864,2,-2.984,1,0.0441,0.02,0.000129,0.0995,0.576,151.988

Первый столбец представляет настроение. Поскольку данные не находятся в определенном диапазоне, я нормализовал их, а затем сделал все остальное для дерева решений. Это окончательный код:

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn import tree
from sklearn.metrics import accuracy_score
from sklearn import preprocessing
df = pd.read_csv('final_data.csv')
x=df.values
min_max_scaler = preprocessing.MinMaxScaler()
x_scaled = min_max_scaler.fit_transform(x)
df = pd.DataFrame(x_scaled)
col = list(df.columns)[0]
lab_enc = preprocessing.LabelEncoder()
encoded = lab_enc.fit_transform(df[col])
df[col] = encoded
X = df.drop(col,axis=1)
y = df[col]
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.2,random_state=42)
model = tree.DecisionTreeClassifier()
model.fit(X_train,y_train)
y_predict=model.predict(X_test)
print(accuracy_score(y_test,y_predict))

Но я получаю точность только 36 -38%. Почему это происходит? Набор данных содержит около 500 примеров каждого настроения.

Я что-то не так делаю при создании набора данных, или есть какой-то другой источник этой ошибки? Кроме того, есть ли лучший способ классифицировать песни по настроению?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...