
8-LEKCIYA_MDQI
.pdf8-Lekciya. Klasterizaciya máselelerin sheshiw ushın maǵlıwmatlardı dáslepki qayta islew
Jobası:
1.Klasterizaciya haqqında
2.Klasterizaciya máselelerin sheshiw ushın maǵlıwmatlardı dáslepki qayta islew
1.Kirisiw
Klasterizaciya - bul maǵlıwmatlardı analiz etiwdiń bir usılı bolıp, ol obyektlerdi olardıń uqsaslıǵına qarap toplarǵa (klasterlerge) bóliwge tiykarlanǵan. Klasterizaciya máselelerin sheshiw ushın maǵlıwmatlardı dáslepki qayta islew júdá áhmiyetli adım bolıp tabıladı.
2.Maǵlıwmatlardı dáslepki qayta islew nege kerek?
Sapasız maǵlıwmatlardı joq etiw
Maǵlıwmatlardı normallastrıw
Ólshemlerdi azaytıw
Belgilerdı tańlaw hám transformaciyalaw
Maǵlıwmatlardı dáslepki qayta islew áhmiyeti: Maǵlıwmatlardı dáslepki qayta islew - bul klasterizaciya algoritmlerin qollanıwdan aldın ótkeriletuǵın áhmiyetli process. Bul process maǵlıwmatlardı sapalastırıw, normallastrıw hám tayarlaw arqalı algoritmlerdiń effektivligin hám nátiyjeliligin asırıwǵa járdem beredi.
3. Maǵlıwmatlardı tazalaw
Joq bolǵan mánislerdi toltırıw
Shıǵıp ketken mánislerdi tabıw hám óńlew
Dublikatlar menen islew
4. Maǵlıwmatlardı normallastrıw
Min-Max normallastrıw
Z-score normallastrıw
Robust normallastrıw
5. Ólshemlerdi azaytıw
PCA (Principal Component Analysis)
t-SNE (t-distributed Stochastic Neighbor Embedding)
UMAP (Uniform Manifold Approximation and Projection)
6. Belgilerdı tańlaw hám transformaciyalaw

Belgilerdı qoldan tańlaw
Avtomatik belgi tańlaw usılları
Belgilerdı transformaciyalaw (one-hot encoding, binning, t.b.)
7.Python járdeminde maǵlıwmatlardı dáslepki qayta islew
Endi, Python tilinde maǵlıwmatlardı dáslepki qayta islew ushın kerek bolatuǵın tiykarǵı kitapxanalardı hám olardıń funkciyaların kórip shıǵayıq:
python
import numpy as np import pandas as pd
from sklearn.preprocessing import MinMaxScaler, StandardScaler, RobustScaler from sklearn.impute import SimpleImputer
from sklearn.decomposition import PCA
from sklearn.feature_selection import SelectKBest, f_classif
# Maǵlıwmatlardı oqıw
data = pd.read_csv('data.csv')
#Joq bolǵan mánislerdi toltırıw
imputer = SimpleImputer(strategy='mean')
data_imputed = pd.DataFrame(imputer.fit_transform(data), columns=data.columns)
#Normallastrıw
scaler = MinMaxScaler()
data_scaled = pd.DataFrame(scaler.fit_transform(data_imputed), columns=data_imputed.columns)
#PCA járdeminde ólshemlerdi azaytıw pca = PCA(n_components=2)
data_pca = pca.fit_transform(data_scaled)
#Belgilerdı tańlaw
selector = SelectKBest(score_func=f_classif, k=5) data_selected = selector.fit_transform(data_scaled, target)
print(data_selected)
Bul kod maǵlıwmatlardı oqıw, joq bolǵan mánislerdi toltırıw, normallastrıw, ólshemlerdi azaytıw hám belgilerdı tańlaw processlerin kórsetedi.
Belgilerdi transformaciyalaw boyınsha Python tilinde kodın jazamız. Bul kodta biz úsh tiykarǵı transformaciya usılın kórsetemiz: one-hot encoding, binning hám logarifmlik transformaciya. Kelin, kodtı kórip shıǵayıq:
python
import pandas as pd import numpy as np
from sklearn.preprocessing import OneHotEncoder, KBinsDiscretizer import matplotlib.pyplot as plt
# Úlgi maǵlıwmatlar data = {
'jası': [25, 30, 35, 40, 45, 50, 55, 60, 65, 70],
'jınısı': ['er', 'hayal', 'er', 'hayal', 'er', 'hayal', 'er', 'hayal', 'er', 'hayal'],
'maǵlıwmatı': ['joqarı', 'orta', 'joqarı', 'tómeng', 'orta', 'joqarı', 'orta', 'joqarı', 'tómeng', 'orta'],

'jıllıq_tabıs': [50000, 60000, 75000, 90000, 100000, 120000, 150000, 200000, 250000, 300000]
}
df = pd.DataFrame(data)
# 1. One-hot encoding
encoder = OneHotEncoder(sparse=False)
encoded_features = encoder.fit_transform(df[['jınısı', 'maǵlıwmatı']]) encoded_feature_names = encoder.get_feature_names(['jınısı', 'maǵlıwmatı']) encoded_df = pd.DataFrame(encoded_features, columns=encoded_feature_names)
print("One-hot encoding nátiyjeleri:") print(encoded_df.head())
print("\n")
# 2. Binning (Discretization)
binner = KBinsDiscretizer(n_bins=5, encode='ordinal', strategy='quantile') binned_age = binner.fit_transform(df[['jası']])
df['jası_binned'] = binned_age
print("Binning nátiyjeleri:") print(df[['jası', 'jası_binned']].head(10)) print("\n")
# 3. Logarifmlik transformaciya df['log_jıllıq_tabıs'] = np.log(df['jıllıq_tabıs'])
print("Logarifmlik transformaciya nátiyjeleri:") print(df[['jıllıq_tabıs', 'log_jıllıq_tabıs']].head(10))
# Vizualizaciya
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 5))
ax1.hist(df['jıllıq_tabıs'], bins=20) ax1.set_title('Dáslepki jıllıq tabıs') ax1.set_xlabel('Jıllıq tabıs') ax1.set_ylabel('Jiyilik')
ax2.hist(df['log_jıllıq_tabıs'], bins=20) ax2.set_title('Logarifmlik transformaciyadan keyingi jıllıq tabıs') ax2.set_xlabel('Log(Jıllıq tabıs)')
ax2.set_ylabel('Jiyilik')
plt.tight_layout() plt.show()
Bul kodtı túsindirip óteyik:
1. One-hot encoding:
oKategoriyalıq ózgeriwshiler 'jınısı' hám 'maǵlıwmatı' ushın qollanıladı.
oHár bir kategoriya ushın jańa baǵana jasaladı, mánisi 0 yamasa 1 boladı.
2.Binning (Discretization):
o'jası' ózgeriwshisin 5 kategoriyaǵa bólemiz.
oBul úziliksiz ózgeriwshini diskret kategoriyalarǵa aylandıradı.
3.Logarifmlik transformaciya:
o'jıllıq_tabıs' ózgeriwshisine qollanıladı.
o Bul qıysıq tarqalǵan maǵlıwmatlardı normallastrıwǵa járdem beredi.
Soń, biz jıllıq tabıstıń dáslepki hám logarifmlik transformaciyadan keyingi tarqalıwın vizuallastıramız. Bul transformaciyanıń tásirin kóriwge járdem beredi.
Bul kod arqalı siz belgilerdi transformaciyalawdıń tiykarǵı usılların kóre alasız hám olardıń maǵlıwmatlarǵa qanday tásir etetuǵının túsine alasız.
Paydalanılǵan ádebiyatlar
1.James, G., Witten, D., Hastie, T., & Tibshirani, R. (2013). An Introduction to Statistical Learning: With Applications in R. Springer.
2.Han, J., Kamber, M., & Pei, J. (2011). Data Mining: Concepts and Techniques (3rd ed.). Morgan Kaufmann.
3.Jain, A. K. (2010). Data clustering: 50 years beyond K-means. Pattern Recognition Letters, 31(8), 651-666.
4.Aggarwal, C. C., & Reddy, C. K. (Eds.). (2013). Data Clustering: Algorithms and Applications. CRC Press.
5.Géron, A. (2019). Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems (2nd ed.). O'Reilly Media.
6.Müller, A. C., & Guido, S. (2016). Introduction to Machine Learning with Python: A Guide for Data Scientists. O'Reilly Media.
7.McKinney, W. (2017). Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython (2nd ed.). O'Reilly Media.