Tasniflash Tasniflash muammosi chiqish o'zgaruvchisi "qizil" yoki "ko'k" yoki "kasallik" va "kasallik yo'q" kabi bir toifa bo'lsa. Tasniflash modeli kuzatilgan qiymatlardan qandaydir xulosa chiqarishga harakat qiladi. Bir yoki bir nechta ma'lumotlarni hisobga olgan holda tasniflash modeli bir yoki bir nechta natijalarning qiymatini taxmin qilishga harakat qiladi.
Masalan, "spam" yoki "spam emas" elektron pochta xabarlarini filtrlashda, tranzaksiya ma'lumotlarini ko'rib chiqishda, "firibgarlik" yoki "vakolatli". Qisqacha aytganda, Tasniflash toifali sinf belgilarini bashorat qiladi yoki atributlarni tasniflashda o'quv to'plami va qiymatlar (sinf yorliqlari) asosida ma'lumotlarni tasniflaydi (model tuzadi) va undan yangi ma'lumotlarni tasniflashda foydalanadi. Bir qator tasniflash modellari mavjud. Tasniflash modellariga logistik regressiya, qarorlar daraxti, tasodifiy o'rmon, gradient bilan mustahkamlangan daraxt, ko'p qatlamli perseptron, bir-va-dam va Naive Bayes kiradi.
Masalan :
Quyidagilardan qaysi biri tasniflash muammo(lari) hisoblanadi?
Qo'l yozuvi uslubiga ko'ra odamning jinsini taxmin qilish
Hududga qarab uy narxini bashorat qilish
Kelgusi yil musson normal bo'ladimi yoki yo'qligini bashorat qilish
Musiqiy albomning keyingi oyda qancha nusxada sotilishini taxmin qiling
Yechim : Insonning jinsini bashorat qilish Kelgusi yil musson normal bo'ladimi yoki yo'qligini bashorat qilish. Qolgan ikkitasi regressiya.
Biz ba'zi misollar bilan tasniflashni muhokama qilganimizdek. Endi biz python-da RandomForestClassifier yordamida iris ma'lumotlar to'plamida tasniflashni amalga oshirayotgan tasniflash misoli mavjud. Ma'lumotlar to'plamini bu yerdan yuklab olishingiz mumkin.
Ma'lumotlar to'plami tavsifi
Sarlavha: Iris o'simliklari ma'lumotlar bazasi
Atribut haqida ma'lumot:
1. sepal uzunligi sm
2. sepal kengligi sm
3. gulbarg uzunligi sm
4. barg barglarining kengligi sm
5. sinf:
-- Iris Setosa
-- Iris Versicolour
-- Iris Virjinika
Atribut qiymatlari yetishmayotgan: Yo‘q
Sinf taqsimoti: 3 sinfning har biri uchun 33,3%
# classification using data set
#Importing the required library
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.preprocessing import LabelEncoder
from sklearn.metrics import confusion_matrix
from sklearn.metrics import accuracy_score
from sklearn.metrics import classification_report
#Importing the dataset
dataset = pd.read_csv(
'https://archive.ics.uci.edu/ml/machine-learning-'+
'databases/iris/iris.data',sep= ',', header= None)
data = dataset.iloc[:, :]
#checking for null values
print("Sum of NULL values in each column. ")
print(data.isnull().sum())
#separating the predicting column from the whole dataset
X = data.iloc[:, :-1].values
y = dataset.iloc[:, 4].values
#Encoding the predicting variable
labelencoder_y = LabelEncoder()
y = labelencoder_y.fit_transform(y)
#Splitting the data into test and train dataset
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size = 0.3, random_state = 0)
#Using the random forest classifier for the prediction
classifier=RandomForestClassifier()
classifier=classifier.fit(X_train,y_train)
predicted=classifier.predict(X_test)
#printing the results
print ('Confusion Matrix :')
print(confusion_matrix(y_test, predicted))
print ('Accuracy Score :',accuracy_score(y_test, predicted))
print ('Report : ')
print (classification_report(y_test, predicted))
Hozirgi davrda kompaniyalar o'z mijozlarini xursand qilish uchun ko'p harakat qilishadi. Ular mijozlar o'z mahsulotlaridan ko'proq foydalanishlari uchun yangi texnologiyalar va xizmatlarni ishga tushiradilar. Ular o'zlarining har bir mijozi bilan aloqada bo'lishga harakat qilishadi, shuning uchun ular mos ravishda tovarlar bilan ta'minlashlari mumkin. Lekin amalda hamma bilan aloqada bo'lish juda qiyin va real emas. Shunday qilib, bu erda mijozlar segmentatsiyasidan foydalanish keladi .