Multi-class classification
0 மற்றும் 1 என இரு பிரிவுகள் மட்டும் இல்லாமல், பல்வேறு பிரிவுகள் இருப்பின், புதிதாக வரும் ஒன்றினை எந்த பிரிவின் கீழ் அமைக்க வேண்டும் என கணிப்பதே multi-class classification ஆகும். இதில் எத்தனை பிரிவுகள் இருக்கிறதோ, அத்தனை logistic கணிப்புகள் நடைபெறும். பின்னர் புதிதாக வருகின்ற ஒன்று, அனைத்தினாலும் கணிக்கப்பட்டு , எதில் அதிகமாகப் பொருந்துகிறதோ, அந்தப் பிரிவைச் சென்றடையும்.
கீழ்க்கண்ட உதாரணத்தில் சிகப்பு, ஊதா, பச்சை, மஞ்சள் எனும் நான்கு பிரிவுகளில் வளையங்கள் உள்ளன.
முதலில் சிகப்பினைக் கணிப்பதற்கான hypothesis உருவாக்கப்படும். இதில் h(x) = 1 என்பது சிகப்பினைக் குறிக்கும். சிகப்பு அல்லாத அனைத்தும் 0 –ஆல் குறிக்கப்படும்.
அடுத்து ஊதாவைக் கணிப்பதற்கான hypothesis உருவாக்கப்படும். இதில் h(x) = 1 என்பது ஊதாவைக் குறிக்கும். ஊதா அல்லாத அனைத்தும் 0 –ஆல் குறிக்கப்படும்.
இவ்வாறாக அடுத்தடுத்த நிறங்களுக்கு hypothesis உருவாக்கப்படும்.
பின்னர், புதிதாக ஒரு வளையம் வருகிறதெனில் அது சிகப்பாக கணிக்கப்படுவதற்கான சாத்தியம் 30%, ஊதாவாக கணிக்கப்படுவதற்கான சாத்தியம் 40%, பச்சையாக கணிக்கப்படுவதற்கான சாத்தியம் 60% மஞ்சளாக கணிக்கப்படுவதற்கான சாத்தியம் 50% என வருகிறததேனில் தெ , எதன் சாத்தியம் அதிகமாக இருக்கிறதோ, அந்தப் பிரிவின் கீழ் அமையும். இதுவே multi-class classification ஆகும்.
Decision tree, gaussian NB, KNN, SVC ஆகியவை இதுபோன்ற multi class -க்கு துணைபுரியும் algorithmns ஆகும். இவை பின்வருமாறு.
வெளியீடு:
0.8947368421052632
[[15 1 0]
[ 3 6 0]
[ 0 0 13]]
(array([0.83333333, 0.85714286, 1. ]), array([0.9375, 0.66666667, 1. ]), array([0.88235294, 0.75, 1. ]), array([16, 9, 13], dtype=int64))
0.9736842105263158
[[15 1 0]
[ 0 9 0]
[ 0 0 13]]
(array([1. , 0.9, 1. ]), array([0.9375, 1. , 1. ]), array([0.96774194, 0.94736842, 1. ]), array([16, 9, 13], dtype=int64))
0.9736842105263158
[[15 1 0]
[ 0 9 0]
[ 0 0 13]]
(array([1. , 0.9, 1. ]), array([0.9375, 1. , 1. ]), array([0.96774194, 0.94736842, 1. ]), array([16, 9, 13], dtype=int64))
1.0
[[16 0 0]
[ 0 9 0]
[ 0 0 13]]
(array([1., 1., 1.]), array([1., 1., 1.]), array([1., 1., 1.]), array([16, 9, 13], dtype=int64))
அடுத்ததாக வாடிக்கையாளர் புகாரில் உள்ள வார்த்தைகளைக் கொண்டு, அந்தப் புகார் எந்த வகையின் கீழ் அமையும் என கணிக்கும் MultinomialNB algorithm பின்வருமாறு.
இதற்கு முதலில் ஒவ்வொரு product -ன் கீழும் எத்தனை புகார்கள் பயிற்சிக்குக் கொடுக்கப்பட்டுள்ளன என ஒரு வரைபடம் மூலம் வரைந்து பார்க்கப்படுகிறது.
பின்னர் அவை 70-30 எனும் விகிதத்தின் படி பயிற்சி கொடுக்கப்பட்டு சோதிக்கப்படுகிறது.
இதில் TfidfVectorizer மூலம் புகாரில் உள்ள தனித்தனி வார்த்தைகள் அனைத்தும் features -ஆக சேமிக்கப்படுகின்றன. பின்னர் chi2 மூலம் ஒவ்வொரு தனித்தனி category -யோடும் தொடர்பு கொண்டுள்ள வார்த்தைகளின் பட்டியல் சேமிக்கப்படுகிறது. பின்னர் அவை தனித்தனி வார்த்தையாக அமைந்தால் எந்த category -ன் கீழ் அமையும், இரண்டிரண்டாக அமைந்தால் எந்த category -ன் கீழ் அமையும் என்பது unigrams, bigrams எனும் பெயரில் சேமிக்கப்படுகின்றன.