Ma’lumotlar to‘plash va o‘rganish

|
Ma’lumotlar to‘plash va o‘rganish
|
bet | 97/182 | Sana | 19.05.2024 | Hajmi | 5,69 Mb. | | #244351 |
Bog'liq Python sun\'iy intellekt texnologiyasi Dasrlik 2024Ma’lumotlar to‘plash va o‘rganish:
NumPy: Ma’lumotlar bilan ishlash, massivlar va matrikslar bilan ma’lumotlar ustida amal qilish uchun.
Pandas: Ma’lumotlar yig’ish, tahlil qilish, indekslash va statistika olish uchun kutilgan kutubxona.
Matplotlib va Seaborn: Ma’lumotlar o‘rniga grafiklar va tasvirlar yaratish uchun kutubxonalar.
Masalan:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt # NumPy orqali ma’lumotlar tuzish
data = np.array([[1, 2, 3], [4, 5, 6]])
# Pandas orqali DataFrame yaratish
df = pd.DataFrame(data, columns=['A’, 'B’, 'C'])
# Matplotlib orqali grafik yaratish
plt.plot(df['A’], df['B’])
plt.show()
Ma’lumotlarni tayyorlash va tasniflash uchun Scikit-Learn:
Taqsimlash va tadqiqot: Ma’lumotlarni sinflash va sinflash natijalarini hisoblash uchun.
Xususiyatlarni o‘zlashtirish: Ma’lumotlar bilan ishlovchi va natijalar bilan sinflovchi bo‘lgan model yaratish.
Sinflash algoritmlari: KNN, Decision Trees, Random Forest, SVM, va boshqalar.
Masalan:
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score
# Ma’lumotlarni tayyorlash va taqsimlash
X_train, X_test, y_train, y_test = train_test_split(features, labels, test_size=0.2, random_state=42) # Modelni yaratish va o‘qitish
model = KNeighborsClassifier(n_neighbors=3)
model.fit(X_train, y_train) # Sinflash natijalarini hisoblash
predictions = model.predict(X_test)
accuracy = accuracy_score(y_test, predictions)
print(f"Accuracy: {accuracy}")
Deep Learning uchun TensorFlow va Keras:
TensorFlow: Graphlarni ishlab chiqish va matnni o‘qitish uchun kutubxona.
Keras: TensorFlow uchun oson interfeys yaratish va matnni o‘qitish uchun.
Masalan:
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense # Keras modelini yaratish
model = Sequential()
model.add(Dense(units=64, activation='relu', input_dim=input_dim))
model.add(Dense(units=10, activation='softmax'))# Modelni o‘qitish
model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])
model.fit(X_train, y_train, epochs=10, batch_size=32, validation_data=(X_val, y_val))
Bu asosiy qatlamlar sizga ma’lumotlarni aniqlash va tasniflashda yordam bera oladi. Ba’zi muammolar uchun ma’lumotlar va asosiy amallar o‘zgartirilishi mumkin bo‘ladi.
Python yordamida ma’lumotlarni aniqlash (data exploration) va tasniflash (classification) asoslari quyidagilar bo‘lishi mumkin:
Ma’lumotlarni Yuklash (Data Loading): Ma’lumotlarni o‘rganish va tahlil qilish uchun mos ma’lumotlarni yuklash kerak bo‘ladi. Bunday ma’lumotlar tekst, rasm, sonlar yoki boshqa turdagi ma’lumotlar bo‘lishi mumkin.
Masalan, CSV faylidan ma’lumotlarni yuklash:
import pandas as pd
# CSV faylidan ma’lumotlarni yuklash
data = pd.read_csv('ma\'lumotlar.csv')
Ma’lumotlarni tahlil qilish (Data Analysis): Ma’lumotlarni o‘rganish uchun, ularni tahlil qilish va aniq ma’lumotlar olish muhimdir. Pandas kutubxonasi bu maqsadga mos qo‘llanmalar bilan keladi.
Misol uchun, bir nechta qatori chiqarish:
# Ma’lumotlar to‘g’risida umumiy ma’lumotlar
print(data.info())# Boshqa statistik ma’lumotlar
print(data.describe())
Ma’lumotlar bo‘yicha visualizatsiya: Matnlar, sonlar yoki boshqa ma’lumotlar bo‘yicha grafiklarni ishlab chiqish yordamida ma’lumotlarni tahlil qilish, o‘rganish va tasniflash uchun sezilarli bo‘ladi. Bu ishni matplotlib, seaborn yoki boshqa kutubxonalar orqali bajarishingiz mumkin.
import matplotlib.pyplot as plt
import seaborn as sns # Sonlarni taqqoslash
sns.pairplot(data, hue='sinf')
plt.show()
Ma’lumotlarni ishlovchi ishlash (Data Preprocessing): Ma’lumotlar to‘g’rilanishi, yo‘qotilgan qiymatlarni to‘ldirish, yoki boshqa qadamlangan ishlovchilar orqali ma’lumotlarni tayyorlash. Bu, ML-algoritmning to‘g’ri ishlashini ta’minlash uchun kerakli bo‘ladi.
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
# X va y ni ajratib olish
X = data.drop('sinf', axis=1)
y = data['sinf'] # Ma’lumotlarni trening va test qismiga ajratish
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # Ma’lumotlarni standartlashtirish
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
ML-Model Yaratish va O‘qitish: Tanib olish va tasniflash uchun ma’lumotlar tayyorlandi. Keyingi qadam, ML-modelni yaratish va uni ma’lumotlar bilan o‘qitishdir. Scikit-Learn, TensorFlow, va Keras bu maqsadga mos kutubxonalar bo‘lib, ularga xos ML-algoritmlar mavjud.
from sklearn.neighbors import KNeighborsClassifier
# Sinfi tanib olish modelini yaratish va o‘qitish
model = KNeighborsClassifier(n_neighbors=3)
model.fit(X_train_scaled, y_train)
Natijalarni baholash va test qilish: O‘qitilgan modelning ishlashini tekshirish uchun test ma’lumotlaridan foydalanish va natijalarni baholash kerak bo‘ladi.
from sklearn.metrics import accuracy_score
# Test ma’lumotlarini sinfga o‘tkazish va natijalarni baholash
predictions = model.predict(X_test_scaled)
accuracy = accuracy_score(y_test, predictions)
print(f"Accuracy: {accuracy}")
Bu adabiyot ma’lumotlar bilan Python yordamida ma’lumotlarni aniqlash va tasniflash asoslari bo‘yicha umumiy rasmni ko‘rsatadi. Har bir maqsad va ma’lumot turiga qarab, bu qadamlarni o‘zgartirishingiz mumkin.
Python-da ma’lumotlarni aniqlash va tasniflash asoslari quyidagi asosiy kutubxonalarda joylashgan:
NumPy: Ma’lumotlar bilan ishlashda juda kuchli kutubxonadirdir. NumPy orqali massivlar, tensorlar va ma’lumotlar bilan arifmetik operatsiyalarni o‘rganish mumkin.
Masalan, NumPy orqali massiv yaratish:
import numpy as np # 1D massiv (vector)
arr1 = np.array([1, 2, 3]) # 2D massiv (matrix)
arr2 = np.array([[1, 2, 3], [4, 5, 6]])
Pandas: Ma’lumotlarni tahlil qilish va ma’lumotlar o‘rnini o‘z ichiga olgan kutubxonadir. DataFrame obyektlari yaratish va ular bilan ishlashga imkoniyat beradi.
Masalan, Pandas orqali DataFrame yaratish:
import pandas as pd # DataFrame yaratish
data = {'Name’: ['John’, 'Jane’, 'Bob’],
'Age’: [25, 30, 35],
'City': ['New York', 'San Francisco‘, 'Los Angeles']}
df = pd.DataFrame(data)
Matplotlib va Seaborn: Bu kutubxonalarda grafiklar yaratish uchun funksiyalar mavjud. Matplotlib asosan matn, grafiklar, tasvirlar yaratishga mo‘ljallangan, Seaborn esa statistik tahlil qilish vaqtida yordam bera oladi.
Masalan, Matplotlib orqali barchart yaratish:
import matplotlib.pyplot as plt
# Barchart yaratish
categories = ['Category A’, 'Category B’, 'Category C']
values = [3, 7, 5]
plt.bar(categories, values)
plt.xlabel('Categories')
plt.ylabel('Values')
plt.title('Bar Chart Example’)
plt.show()
Scikit-Learn: Bu oddiy va kuchli tanib olish, tasniflash, va regressiya algoritm turlarini o‘z ichiga olgan kutubxonadir. Ma’lumotlarni qisqa vaqt ichida tahlil qilish va sinflarni tanib olish uchun foydalaniladi.
Masalan, sinfi tanib olish:
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier # Ma’lumotlarni tayyorlash
X_train, X_test, y_train, y_test = train_test_split(features, labels, test_size=0.2, random_state=42) # Sinfi tanib olish modelini yaratish va o‘qitish
model = KNeighborsClassifier(n_neighbors=3)
model.fit(X_train, y_train)
NLTK (Natural Language Toolkit): Matn ma’lumotlari bilan ishlash uchun mo‘ljallangan kutubxonadir. Tokenizatsiya, stemming, lemmatization kabi jarayonlarni o‘z ichiga oladi.
Masalan, matn tanib olish:
from nltk.tokenize import word_tokenize
from nltk.corpus import stopwords
text = "This is a sample sentence for tokenization and stopword removal."
# Matnni so‘zlar ketma-ketliga ajratish
words = word_tokenize(text) # Stopwords ni olib tashlash
filtered_words = [word for word in words if word.lower() not in stopwords.words('english')]
Ushbu kutubxonalardan foydalangan holda ma’lumotlarni aniqlash va tasniflash uchun tizim yaratish oson va samarali bo‘ladi.
|
| |