Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

8-LEKCIYA_MDQI

.pdf
Скачиваний:
0
Добавлен:
18.10.2024
Размер:
217.39 Кб
Скачать

8-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.

Соседние файлы в предмете Программная инженерия