【发布时间】:2022-01-24 06:07:16
【问题描述】:
我有 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()
但我遇到了这个错误;
Traceback(最近一次通话最后一次):
文件“C:\Users\hayyi.spyder-py3\temp.py”,第 218 行,在 模型.fit(X,Y)
文件 "D:\SpyderUI\MiniConda\envs\spyder-env\lib\site-packages\sklearn\ensemble_forest.py", 第 367 行,合适 y, expand_class_weight = self._validate_y_class_weight(y)
文件 "D:\SpyderUI\MiniConda\envs\spyder-env\lib\site-packages\sklearn\ensemble_forest.py", 第 724 行,在 _validate_y_class_weight check_classification_targets(y)
文件 "D:\SpyderUI\MiniConda\envs\spyder-env\lib\site-packages\sklearn\utils\multiclass.py", 第 198 行,在 check_classification_targets 中 raise ValueError("未知标签类型:%r" % y_type)
ValueError:未知标签类型:'连续'
我该如何解决这个问题?
【问题讨论】:
-
欢迎来到 Stack Overflow。请阅读How to Ask 和stackoverflow.com/help/minimal-reproducible-example。如果问题出现在 scikit 部分,那么我们不需要查看您的代码来绘制结果。我们确实需要查看完整代码来设置问题 - 包括必要的
imports,以及dfDataFrame 的初始数据。 (它不一定是你的真实数据;它应该很小,但应该足以重现问题。) -
感谢您的回答。我编辑了问题。
-
您展示的代码真的需要所有这些导入吗?此外,向我们展示您通过读取 CSV 文件创建了 DataFrame 对我们没有帮助,因为我们没有您的文件并且不知道它的结构。相反,您应该将其替换为硬编码创建 DataFrame(即直接调用构造函数)。
-
我尝试了很多方法来解决这个问题,因为它有很多导入。不知道怎么直接调用构造函数。
-
您不知道如何从 Python 代码中的硬编码数据创建 DataFrame?真的吗?您是否尝试阅读文档?
标签: python pandas dataframe scikit-learn