决策树模型的低准确性

时间:2020-04-20 19:23:52

标签: python python-3.x machine-learning scikit-learn decision-tree

我正在制作决策树模型来预测歌曲的心情。我的数据集包含有关歌曲音频特征(例如速度,响度,舞蹈性等)的信息,目标列表示歌曲的情绪。这是我的数据集中的第一行:

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个示例。

在制作数据集时我做错什么了吗,还是这个错误有其他来源?另外,有没有更好的方法可以按心情对歌曲进行分类?

0 个答案:

没有答案