我正在尝试使用 scikit learn 和下面的代码创建逻辑回归模型。我使用 9 列作为特征 (X) 和 1 列作为标签 (Y)。尝试拟合时出现错误“ValueError:找到具有不一致样本数的输入变量:[9, 560000]”即使以前 X 和 Y 的长度相同,如果我使用 x.transpose() 我得到一个不同的错误“AttributeError:'int'对象没有属性'lower'”。我假设这可能与 tfidfvectorizer 有关,我这样做是因为 3 列包含单个单词并且不起作用。这是这样做的正确方法还是应该分别转换列中的单词然后使用train_test_split?如果不是,为什么我会收到错误,我怎么能找到它们。
df = pd.read_csv("UNSW-NB15_1.csv",header=None, names=cols, encoding = "UTF-8",low_memory=False)
df.to_csv('netraf.csv')
csv = 'netraf.csv'
my_df = pd.read_csv(csv)
x_features = my_df.columns[1:10]
x_data = my_df[x_features]
Y = my_df["Label"]
x_train, x_validation, y_train, y_validation =
model_selection.train_test_split(x_data, Y, test_size=0.2, random_state=7)
tfidf_vectorizer = TfidfVectorizer()
lr = LogisticRegression()
tfidf_lr_pipe = Pipeline([('tfidf', tfidf_vectorizer), ('lr', lr)])
tfidf_lr_pipe.fit(x_train, y_train)