簡體   English   中英

如何修復未知的 label 類型:“連續”?

[英]How can I fix Unknown label type: 'continuous'?

我有 2 列(評論、毒性)csv 文件。 注釋是字符串,毒性是浮點數。

| 評論 | 專欄 | |:---- |:-----:| | 有毒評論 | 0,6817 | 我想用這段代碼做特征重要性;

import numpy as np
import tensorflow as tf
import pickle
import pandas as pd
import os
import nltk
import re
import matplotlib.pyplot as plt
import seaborn as sns
import string

from tensorflow.keras.models import Sequential
from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences
from tensorflow.keras.layers import Dense, Input, LSTM, Embedding, 
Dropout, Activation
from tensorflow.keras.layers import Bidirectional, GlobalMaxPool1D
from tensorflow.keras import initializers, regularizers, constraints, 
optimizers, layers
from tensorflow.keras import layers , activations , models , 
preprocessing, 
utils
from gensim.models import Word2Vec, KeyedVectors
from sklearn import metrics
from sklearn import preprocessing
from sklearn.linear_model import LinearRegression
from nltk.corpus import stopwords
from nltk import word_tokenize
from sklearn.metrics import roc_curve
from sklearn.metrics import auc
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score
from collections import defaultdict
from sklearn.ensemble import ExtraTreesClassifier

df=pd.read_csv("toxic.csv")
labelencoder = preprocessing.LabelEncoder()
df['comment'] = labelencoder.fit_transform(df['toxicity'])

Y=df['toxicity'].values
X=df['comment'].values.reshape(-1, 1)   #target column toxicity


model = ExtraTreesClassifier()
model.fit(X,Y)
feat_importances = pd.Series(model.feature_importances_,index=X.columns)
feat_importances.nlargest(10).plot(kind='barh')
plt.show()

但是我遇到了這個錯誤;

回溯(最近一次通話最后):

文件“C:\Users\hayyi.spyder-py3\temp.py”,第 218 行,在 model.fit(X,Y)

文件“D:\SpyderUI\MiniConda\envs\spyder-env\lib\site-packages\sklearn\ensemble_forest.py”,第 367 行,適合 y,expanded_class_weight = self._validate_y_class_weight(y)

_validate_y_class_weight check_classification_targets(y) 中的文件“D:\SpyderUI\MiniConda\envs\spyder-env\lib\site-packages\sklearn\ensemble_forest.py”,第 724 行

文件“D:\SpyderUI\MiniConda\envs\spyder-env\lib\site-packages\sklearn\utils\multiclass.py”,第 198 行,在 check_classification_targets 中引發 ValueError(“未知 label 類型:%r”% y_type)

ValueError:未知 label 類型:“連續”

我怎樣才能解決這個問題?

首先,必須清楚你要解決什么類型的問題。 這是分類還是回歸問題? (我假設您已經知道差異)

在您的情況下,我假設您正在處理回歸問題,因為toxicity是一個float

在您的代碼中,您使用的算法僅適用於分類問題: ExtraTreesClassifier() 您收到的錯誤是因為算法不知道如何處理y中的連續值,它只知道如何處理分類y

要解決此問題,請嘗試使用另一種算法: ExtraTreesRegressor() ,它與您使用的算法相同,但設計用於解決回歸問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM