我有一个包含144个学生反馈的训练数据集,分别有72个正反馈和72个负反馈。数据集有两个属性,即数据和目标,分别包含句子和情感(正或负)。测试数据集包含106个未标记的反馈。 考虑以下代码:
-- Adding data to the Health Data Baseline table
INSERT INTO Health_Data_Baseline (
Total_Sleep_Duration_Baseline
,Body_Weight_Baseline
,Body_Mass_Index_Baseline
,Body_Fat_Percentage_Baseline
,Step_Count_Baseline
,Flights_Climbed_Baseline
,Health_Data.Person_Device_ID)
SELECT
AVG(Total_Sleep_Duration) -- as "Average Minutes of Sleep Per Night"
,AVG(Body_Weight) -- as "Average Weight in Pounds"
,AVG(Body_Mass_Index) -- as "Average Body Mass Index"
,AVG(Body_Fat_Percentage) -- as "Average Body Fat %"
,AVG(Step_Count) -- as "Average Step Count"
,AVG(Flights_Climbed) -- as "Average Flights Climbed"
,Health_Data.Person_Device_ID
FROM Health_Data
JOIN Person_Device ON Person_Device.Person_Device_ID = Health_Data.Person_Device_ID
GROUP BY Health_Data.Person_Device_ID
我不知道怎么了。请帮忙。
答案 0 :(得分:0)
您得到的错误与样本数无关,而与功能数有关,这是由这些代码行引起的:
cv = CountVectorizer(binary = True)
ct = CountVectorizer(binary= True)
cv.fit(feedback_data['data'].values)
ct.fit(feedback_data_test['data'].values)
您需要以相同的方式对测试和训练进行编码
您将Count Vectorizer拟合到所有数据上,然后将其应用于测试和训练,否则,您的词汇量也不相同,因此编码也不相同。
cv = CountVectorizer(binary = True)
cv.fit(np.concatenate((feedback_data['data'].values,feedback_data_test['data'].values))
编辑
您只是不使用ct,而仅使用cv
X = feedback_data['data'].apply(lambda X : cv.transform([X])).values
X = list([list(x.toarray()[0]) for x in X])
X_test = feedback_data_test['data'].apply(lambda X_test :cv.transform([X_test])).values
X_test = list([list(x.toarray()[0]) for x in X_test])