For a specific need in a machine learning topic, after training a model and getting an accuracy of 74% I need to identify the lines that have the correct prediction from those that have an incorrect prediction in the test set. For this I go through 3 steps : 1- Incorrect_result contains 0 or 1 depending on correct or incorrect result
incorrects_result = np.where(y_predicted_l != y_test, 1, 0)
print(incorrects_result)
print(len(incorrects_result))
[1 1 0 ... 0 0 0]
31054
2- f_incorrects identify the places of the incorrect result
f_incorrects = np.flatnonzero(incorrects_result)
print(f_incorrects)
print(len(f_incorrects))
[ 0 1 5 ... 31045 31046 31050]
8049
3- when I try to drop lines from y_test in these places i get an error
new_y_test=y_test.drop(f_incorrects, axis=0)
KeyError: '[ 0 1 6 ... 31036 31045 31046] not found in axis'
To understand the nature of y_test :
from sklearn.model_selection import train_test_split
X = df["review"]
y = df["sentiment"]
#Split train data and Test data
X_train,X_test,y_train,y_test = train_test_split(X,y, test_size = 0.4, stratify=df['sentiment'], random_state=42 )
y_test
101409 1
27117 0
38448 0
85548 1
127165 1
..
102431 1
29555 0
140999 1
128882 1
85422 1
Name: sentiment, Length: 31054, dtype: int64
X_test
101409 هزم البكاء الأليم ضحكاتها وضحكاته أيضا فأمسك ك...
27117 اتفّق الكثير على روعة الرواية، بدأت بقراءة خمس...
38448 روايه سخيفه جدا. مش عارفه العيب منى ولا منها. ...
85548 أحمد مراد يتطور أسلوبه من رواية إلى أخرى.يحاول...
127165 كثيرا ما هربت من أنوثتي وكثيرا ما هربت منك لأن...
...
102431 تجتاحنى حالة من الهدوء النفسى عقب قراءة هذا ال...
29555 وحدها شجرة الرمان . كم أتمنى حرق هذه الرواية و...
140999 اه ، كم لهذا الكتاب وقع في قلبي. قرأته بالوقت ...
128882 تريد القيام برحله حول العالم برغم مكوثك بمكانك...
85422 بالرغم من أنك قد تكون قرأت الكثير من الكتب الت...
Name: review, Length: 31054, dtype: object
y_train
114172 1
155935 1
35405 0
108907 1
42159 0
..
70867 0
50649 0
14310 0
102194 1
64010 0
Name: sentiment, Length: 93161, dtype: int64
X_train
114172 رحم الله د\\ غازي القصيبي. الروايه تتحدث عن 4 ...
155935 من الفصحى إلى العامية إلى التراثية . ديوان يست...
35405 الرواية أسلوبها ركيك و احداثها لا تواكب العصرا...
108907 رواية أكثر من رائعة !! أحيي الكاتب على قدرته ا...
42159 نقدي على الفكرة لا على الأسلوب أو الكلمات. ماح...
...
70867 قرأت أول ربع واستمتعت به وضحكت، واستكملت الربع...
50649 الكتاب كويس بس قصاصات قابلة للحرق افضل بكثير. ...
14310 ما الجديد المميز في هذه الرواية ؟ للأسف لا شيء !
102194 كتاب جميل وقيم يوضح الفروقات بين الظاهره \\الخ...
64010 اولا لو في نص نجمة كنت خليت تقييمي ليها نص، طو...
Name: review, Length: 93161, dtype: object
Please help!
CodePudding user response:
Because you didn't provide us example of y_test I'm not completely sure, but I think y_test is index is not same as row_number. So if you reset index of y_test it should be fixed.
df.reset_index(drop = True).drop(f_incorrects, axis = 0)