Bài viết này nhằm mục đích mục đích tổng hợp, tóm tắt lại những thuật toán của Machine Learning, giúp bạn đọc tất cả cái quan sát toàn cảnh và làm rõ hơn về Deep Learning.

Bạn đang xem: Phân tích dữ liệu đa lớp (Multilayer Data Analytics)

Các thuật toán ML, chú ý chung rất có thể phân loại theo một trong 2 cách:

Theo phương pháp “học” của thuật toán
Theo phương pháp làm vấn đề của thuật toán

Cả 2 cách phân các loại đều hòa hợp lý, bạn có thể chọn tùy ý. Trong bài bác bài này, mình đã đi sâu hơn theo cách thứ 2. Cũng phải nói thêm rằng, cho dù phân loại theo cách nào thì cũng đều mang ý nghĩa chất tương đối, vị một thuật toán rất có thể thuộc những nhóm khác nhau, tùy nằm trong vào dữ liệu đưa vào đào tạo model.

 
*
 

1. Phân loại theo phong cách “học” (Learning Style)

1.1 học tập có giám sát (Supervised Learning)

Trong giải pháp học này, tài liệu đưa vào huấn luyện và đào tạo model, call là input data, đi kèm theo với một nhãn vẫn biết trước (input data đã được dánh nhãn). Ví như là spam/not-spam, giá cổ phiếu tại một thời điểm, …

Trong quy trình training, output đầu ra của model được đối chiếu với nhãn. Nếu bao gồm sự sai khác, model sẽ cầm gắng cập nhật các trọng số của chính nó để giảm sự sai không giống đó mang lại một mức nào đó vừa lòng yêu cầu bài toán.

Các vấn đề rất có thể giải quyết theo phong cách này: Phân lớn, hồi quy.

Một số thuật toán thuộc các loại này: Logistic Regression, Backpropagation, …

 
*
 

1.2 học không tính toán (Unsupervised Learning)

Input data ko được tấn công nhãn theo cách học này. Mã sản phẩm được huấn luyện bằng phương pháp giảm cấu tạo phức tạp của dữ liệu, tìm kiếm ra các đặc trưng, các mối contact tương quan liêu trong dữ liệu.

Các vấn đề có thể giải quyết theo phong cách này: phân cụm, giảm chiều dữ liệu.

Một số thuật toán thuộc loại này: Apriori, K-Means, …

 
*
 

1.3 học tập bán đo lường và tính toán (Semi-supervised)

Input data bao hàm cả 2 loại: đang đánh nhãn cùng không đánh nhãn.

Model sẽ sử dụng kết hợp cả 2 phương pháp học đo lường và thống kê và không tính toán trong quá trình huấn luyện. Dựa vào công dụng dự đoán của model trên tài liệu chưa đánh nhãn, nhà cách tân và phát triển sẽ tốn ít công sức của con người hơn trong việc đánh nhãn cho những dữ liệu đó. Độ đúng đắn của mã sản phẩm sẽ được nâng cao dần dần dần khi có khá nhiều dữ liệu được tấn công nhãn hơn.

Thực tế, tất cả các thuật toán đều có thể thuộc thể nhiều loại này vì không hẳn lúc nào cũng có đầy đủ dữ liệu được tấn công nhãn ngay từ đầu.

 
*
 

2. Phân loại theo cách làm việc

2.1 Regression Algorithms

Các thùât toán được xếp vào nhóm này lúc nhãn của tài liệu là các giá trị liên tục. Ví dụ: nhiệt độ, giá chỉ tiền, diện tích, …

Một số thuật toán:

Ordinary Least Squares Regression (OLSR)Linear Regression
Logistic Regression
Stepwise Regression
Multivariate Adaptive Regression Splines (MARS)Locally Estimated Scatterplot Smoothing (LOESS)
*
 

2.2 Classification Algorithms

Các thuật toán thụộc team này lúc nhãn của dữ liệu chỉ bao gồm một số lượng hữu hạn những giá trị. Ví dụ: Spam/not-spam, làm nên (tròn, vuông, tam giác), …

Một số thuật toán:

Linear Classifier
Support Vector Machine (SVM)Kernel SVMSparse Representation-based classification (SRC)

2.3 Instance-based Algorithms

Các thuật toán ở trong nhóm này không “học” gì tự dữ liệu. Khi nào cần dự kiến nhãn cho dữ liệu mới, chúng sẽ quét toàn bộ dữ liệu ban sơ và đo lường và tính toán tương quan lại với dữ liệu mới để ra quyết định nhãn.

Một số thuật toán:

k-Nearest Neighbor (k
NN)Learning Vector Quantization (LVQ)Self-Organizing bản đồ (SOM)Locally Weighted Learning (LWL)

2.4 Regularization Algorithms

Các thuật toán hoàn toàn có thể được mở rộng theo phương pháp “trừng phạt” mã sản phẩm dựa bên trên độ phức tạp của chúng, làm cho cho mã sản phẩm trở nên đơn giản hơn, tác dụng là “học” giỏi hơn.

Một số thuật toán:

Ridge Regression
Least Absolute Shrinkage & Selection Operator (LASSO)Elastic Net
Least-Angle Regression (LARS)

2.5 Decision Tree

Đây là phương pháp xây dựng model phụ thuộc vào trực tiếp giá chỉ trị thực tế của input data. Phụ thuộc vào các điều kiện cụ thể áp dụng vào đầu vào data mà mã sản phẩm sẽ chuyển ra những quyết định không giống nhau. Trong ML, các thuật toán thuộc team này được sử dụng khá phổ biến.

Một số thuật toán:Classification và Regression Tree (CART)

Iterative Dichotomiser 3 (ID3)C4.5 and C5.0 (different versions of a powerful approach)Chi-squared Automatic Interaction Detection (CHAID)Decision Stump
M5Conditional Decision Trees

2.6 Bayesian Algorithms

Đây là họ các thụât toán vận dụng định nguyên tắc Bayes trong phần trăm thống kê.

Một số thuật toán:

Naive Bayes
Gaussian Naive Bayes
Multinomial Naive Bayes
Averaged One-Dependence Estimators (AODE)Bayesian Belief Network (BBN)Bayesian Network (BN)

2.7 Clustering Algorithms

Dựa trên con số cụm (nhóm, lớp) đến trước, những thuật toán clusering sẽ phân bổ các điểm dữ liệu về từng lớp, dựa trên sự đối sánh giữa các điểm tài liệu đó với nhau.

Một số thuật toán:

k-Meansk-Medians
Expectation Maximisation (EM)Hierarchical Clustering

2.8 Association Rule Learning Algorithms

Các thuật toán này triệu tập vào việc đào bới tìm kiếm ra các quy tắc phối hợp giữa những điểm tài liệu để sinh ra tài liệu mới, hoặc dữ liệu tồn tại trong tập ban đầu.

Một số thuật toán:

Apriori algorithm
Eclat algorithm

2.9 Artificial Neural Network Algorithms (ANN)

Được truyền cảm giác từ kết cấu não bộ của những loài rượu cồn vật, các thuật toán này mô bỏng lại bí quyết làm viêc của những bộ não đó. Bọn chúng được kết cấu gồm các layers và những nerurons link với nhau.

Một số thuật toán:

Perceptron
Multilayer Perceptrons (MLP)Back-Propagation
Stochastic Gradient Descent
Hopfield Network
Radial Basis Function Network (RBFN)

2.10 Deep Learning (DL) Algorithms

Các thuật toán DL là sự nâng cấp, không ngừng mở rộng của thuật toán ANN. Chúng bao gồm các mạng ANN tinh vi hơn, xử lý các việc với lượng dữ liệu lớn hơn.

Một số thuật toán:

Convolutional Neural Network (CNN)Recurrent Neural Networks (RNNs)Long Short-Term Memory Networks (LSTMs)Stacked Auto-Encoders
Deep Boltzmann Machine (DBM)Deep Belief Networks (DBN)

Chi tiết hơn về các thuật toán ở team này, mình vẫn đề cập trong bài xích tiếp theo. Mời các bạn đón đọc.

2.11 Dimensionality Reduction Algorithms

Đôi khi dữ liệu quá tinh vi sẽ làm giảm tài năng học của các ML model. Những thuật toán này sẽ giúp đỡ giải quyết vụ việc này bằng phương pháp giảm bớt số chiều của tài liệu (giảm độ tinh vi của dữ liệu).

Một số thuật toán:

Principal Component Analysis (PCA)Principal Component Regression (PCR)Partial Least Squares Regression (PLSR)Sammon Mapping
Multidimensional Scaling (MDS)Projection Pursuit
Linear Discriminant Analysis (LDA)Mixture Discriminant Analysis (MDA)Quadratic Discriminant Analysis (QDA)Flexible Discriminant Analysis (FDA)

2.12 Ensemble Algorithms

Ensemble là cách thức sử dụng phối hợp nhiều thuật toán không giống nhau để tạo nên thành một thuật toán mới. Mỗi cách phối kết hợp khác nhau sẽ cho ra những thuật toán khác nhau. Vào ML, các thuật toán thuộc nhóm này được thực hiện rất phổ biến, đạt hiệu quả rất cao.

Một số thuật toán:

Boosting
Bootstrapped Aggregation (Bagging)Ada
Boost
Weighted Average (Blending)Stacked Generalization (Stacking)Gradient Boosting Machines (GBM)Gradient Boosted Regression Trees (GBRT)Random Forest

2.13 Recommendation System Algorithms

Đúng như thương hiệu gọi, đây là các thuật toán giải quyết bài toán lời khuyên người sử dụng làm một việc gì đó bằng cách đưa đến họ những chiếc mà họ rất có thể quan tâm. Chúng thường được áp dụng trong các trang web thương mại dịch vụ điện tử, những ứng dụng coi phim trực tuyến, …

Một số thuật toán:

Content based
Collaborative filtering

2.14 những thuật toán khác

Còn rất nhiều thuật toán không được liệt kê bên trên, đó là số đông thuật toán giải quyết và xử lý các bài toán cụ thể. Rất có thể kể ra một số trong những như sau:

Feature selection algorithms
Algorithm accuracy evaluation
Performance measures
Optimization algorithms…

Vậy là mình đã ra mắt đến các bạn các thuật toán ML nhưng các chúng ta cũng có thể gặp trong quá trình học ML. Hi vọng rằng các bạn đã có cái nhìn tổng thể về chúng, có tác dụng tiền đề nhằm đi sâu hơn trong các bài toán ML về sau.

Trong các bài viết tiếp theo, mình vẫn tổng hợp lại những thuật toán Deep Learning, tiếp đến sẽ đi chi tiết vào một vài thụât toán với các ứng dụng cụ thể. Mời các bạn đón đọc!

3. Tham khảo


Contact Me Hanoi, Vietnam
Social Contacts
Categories
Quick Links
NT. All Rights Reserved |
This site uses cookies. By continuing to use this website, you agree lớn their use. I Accept
 
Introduction

Với kỷ nguyên tài liệu như hiện tại nay, một tập tài liệu high-dimension (đa chiều) với hàng trăm ngàn feature giỏi cột đang trở thành điều không thật xa lạ. High-dimension data mở phía cho nhiều cách thức xử lý những bài toán phức tạp trong thực tế, hoàn toàn có thể kể đến dự đoán kết cấu protein liên quan COVID-19, đối chiếu hình hình ảnh MEG scan não, v.v. Tuy nhiên, một tập tài liệu high-dimension lại hay chứa các feature nhát (không góp phần nhiều vào kết quả) dẫn tới việc giảm tính năng của tế bào hình. Và vấn đề lựa lựa chọn trong không hề ít feature để lựa chọn ra feature có tác động lớn đến kết quả cũng trở nên trở ngại hơn.

Một cách thức thường được áp dụng là chuyên môn dimensional reduction (hay giảm chiều dữ liệu

*

 

 

*

 

Trong đó phương pháp thứ nhì thường phân tách thành cách thức linear cùng non-linear (hay manifold learning)

1. Feature Selection + Elimination

Phương pháp dễ dàng nắm bắt và thực hiện nhất. Một vài phương pháp phổ vươn lên là thường được dùng rất có thể kể cho như

Missing values ratio: những cột tuyệt feature thiếu những giá trị sẽ hầu như không góp phần vào quy mô machine learning. Vì vậy, vấn đề chọn feature bỏ rất có thể dựa trên threshold tỉ lệ giá trị missing của feature đó. Quý hiếm threshold càng tốt thì độ reduction càng lớn.

import pandas as pddf = pd.read_csv("ANSUR.csv")missing_values=df.isnum().sum()/len(def)*100ratios = print( > 0>)variable = < >for i in range(df.columns.shape<0>): if a40: #setting the threshold as 40% variable.append(variables)new_data = dfLow-variance filter: Feature tất cả variance (phương sai) thấp sẽ không đóng góp những trong mô hình. Vậy tương tự như cách trên, nếu bên dưới threshold cố định thì sẽ đào thải feature đó.from sklearn.preprocessing import normalizevariance = df.var()variable = < >for i in range(0,len(variance)): if variance>=0.006: #setting the threshold as 1% variable.append(columns) new_data = dfHigh-correlation filter các feature nếu gồm sự tương quan rất có thể được coi giống hệt trong mô hình. Điều này khiến cho việc tồn tại những feature tương đương nhau không đề xuất thiết. Nếu duy trì lại nhiều feature đối sánh sẽ giảm hiệu năng mô hình đáng đề cập (đặc biệt các quy mô linear giỏi logistic regression).import numpy as npfrom sklearn.preprocessing import normalizeimport pandas as pdnorm = normalize(df)df_norm = pd.Data
Frame.from_records(norm, columns=df.columns)corr_matrix = df_norm.corr().abs() mask = np.triu(np.ones_like(corr_matrix, dtype=bool))tri_df = corr_matrix.mask(mask)results = for i in np.linspace(0.85,0.99,15): i = round(i,2) to_drop = >= i)> reduce_high_corr_df = df.drop(to_drop, axis=1) reduce_high_corr_df = reduce_high_corr_df.drop("Component", axis=1) mean = rfc_mean(reduce_high_corr_df, df<"Component">) results = round(mean,4) high_acc = max(results, key=results.get)print(results)print("Correlation coefficient with the highest predictive accuracy ", high_acc)to_drop = >= 0.88)>print("Number of feature"s dropped ",len(to_drop))Random Forest: phương pháp này cũng tương đối phổ cập và bao gồm ích. Việc áp dụng decision tree có thể tận dụng điểm mạnh thống kê học nhằm tìm ra feature đựng nhiều thông tin để gìn giữ nhất. Thuật toán random forest (sklearn) chỉ nhận giá trị số, nên rất cần được hot encoding.from sklearn.model_selection import train_test_splitfrom sklearn.ensemble import Random
Forest
Classifierfrom sklearn.metrics import accuracy_scoredef rfc_test_accuracy(X, y): """ Function which takes the predictor và target variables and returns the kiểm tra accuracy of the model. """ X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) RFC = Random
Forest
Classifier(random_state=123) RFC.fit(X_train,y_train) test_accuracy = accuracy_score(y_test, RFC.predict(X_test)) return test_accuracy def rfc_mean(X,y,trails=20): """ Print the mean value of Random forest classifier for n trails. """ result = mean = np.array(result).mean() return mean print("Predictive accuracy of base random forrest classifier ",round(rfc_mean(df.drop("Component", axis=1),df<"Component">),3))Backwards-feature elimination: Tiếp cận hướng top down, bắt đầu với toàn bộ feature, và sa thải từng feature cho tới hết.from sklearn.model_selection import train_test_splitfrom sklearn.ensemble import Random
Forest
Classifierfrom sklearn.metrics import accuracy_scoreimport matplotlib.pyplot as pltdef MAN_RFE(X,df,trails=20): accuracy = <> for i in range(df.shape<1>,1,-1): X_train, X_test, y_train, y_test = train_test_split(X, df<"Component">, test_size=0.2, random_state=123) for j in range(trails): rfe = Random
Forest
Classifier() rfe.fit(X_train, y_train) acc = accuracy_score(y_test, rfe.predict(X_test)) accuracy.append(acc) feat_import = dict(zip(X.columns, rfe.feature_importances_)) X = X.drop(min(feat_import, key=feat_import.get), axis=1) return list(np.array(accuracy).reshape(100,20)) df_no_com = df.drop("Component",axis=1)accuracy = MAN_RFE(df_no_com, df)plt.figure(figsize=(20, 6))plt.boxplot(accuracy, sym="")plt.ylim(0.5,0.7)plt.xticks(rotation = 90)plt.xlabel("Number of features removed")plt.ylabel("Accuracy")plt.show()Có thể tham khảo cụ thể hơn tại đây

Forward Feature Selection: Ngược lại phương pháp trước, xuất phát điểm từ 1 feature và tăng dần các feature cho tới khi quy mô đạt giá bán trị buổi tối ưu.

from sklearn.feature_selection import f_regressionf_val, p_val = f_regression(X_train, y_train)hoặc mlxtend

from mlxtend.feature_selection import Sequential
Feature
Selector as sfsfrom sklearn.linear_model import Linear
Regressionlreg = Linear
Regression()sfs1 = sfs(lreg, k_features=3, forward=True, verbose=2, scoring="neg_mean_squared_error")sfs1 = sfs1.fit(X, y)Lưu ý là cả Backward Feature Elimination và Forward Feature Selection thường rất tốn thời gian và khoáng sản tính toán. Nên phương thức chỉ hay chỉ thực hiện với những tập dữ liệu nhỏ, rất ít feature.

Ngoài ra tủ sách scikit-learn cũng support một vài ba method auto cho để chọn những feature xuất sắc như Univariate Selection, recursive feature elimination...

Với Feature Extraction, hãy sử dụng tập dữ liệu lớn hơn chút Fashion MNIST nhằm thử nghiệm. Tập tài liệu này bao gồm 70,000 ảnh với 60,000 ảnh train cùng 10,000 hình ảnh test.

2. Cách thức Linear

Với Feature extraction, bộ dữ liệu Fashion
MNIST được thực hiện để visualize xuất sắc hơn. Chắc hẳn data này không thể lạ lẫm và hoàn toàn hoàn toàn có thể tìm thấy trên google. Tuy nhiên mình cũng để 1 file links drive nhằm tiện mang đến việc thực hiện với colab hơn nếu chúng ta cần. Here

Factor Analysis: những biến được gộp thành nhóm chung theo correlation. Mỗi team này được xem như là 1 factor, với con số factor nhỏ tuổi hơn số chiều cội của tập dữ liệu. Tuy nhiên điểm trừ là hơi khó quan giáp sự tách bóc biệt giữa những factor lúc visualize

import pandas as pdimport numpy as npfrom glob import globimport cv2# Load dataimages = images = np.array(images)image = <>for i in range(0,60000): img = images.flatten() image.append(img)image = np.array(image)train = pd.read_csv("train.csv") # Give the complete path of your train.csv filefeat_cols = < "pixel"+str(i) for i in range(image.shape<1>) >df = pd.Data
Frame(image,columns=feat_cols)df<"label"> = train<"label"># Factor Analysisfrom sklearn.decomposition import Factor
Analysis
FA = Factor
Analysis(n_components = 3).fit_transform(df.values)# Visualize%matplotlib inlineimport matplotlib.pyplot as pltplt.figure(figsize=(12,8))plt.title("Factor Analysis Components")plt.scatter(FA<:,0>, FA<:,1>)plt.scatter(FA<:,1>, FA<:,2>)plt.scatter(FA<:,2>,FA<:,0>)

*

 

Principal component analysis: aka PCA. Đây là 1 thuật toán unsupervised giúp sút chiều dữ liệu và vẫn giữ được nhiều thông tin nhất tất cả thể. Hay được sử dụng với hình dạng dữ liên tục: PCA xoay cùng chiếu điểm dữ liệu theo chiều tăng của phương sai
PCA rất có thể hiểu là 1 quy trình thống kê trong đó phép biến đổi trực giao tập dữ liệu nnn chiều thành nnn chiều principal component.PCA là thuật toán giảm chiều tuyến tính bằng phương pháp biến đổi các biến đối sánh tương quan (p) trở thành các biến k không ràng buộc (với k

Tham khảo thêm bài xích này để hiểu kỹ hơn về PCA. Nhưng nhìn toàn diện tóm tắt lại ý chủ yếu PCA:

Một principal component là tổng hợp tuyến tính của các biến
Các pricipal component được chế tác thành với kim chỉ nam như sau
Principal component (đầu) nỗ lực biểu diễn phương sai lớn số 1 của dữ liệu. Trong đó xác định hướng đổi khác lớn tốt nhất của tài liệu (aka dữ liệu tác động nhất). Thay đổi càng khủng thì lượng thông tin component biểu diễn được càng nhiều.Principal component tiếp sau sẽ cho biết phương sai sót lại của tập tài liệu mà không tương quan với PC1 (hay correlation bằng 0) và vì thế, vị trí hướng của 2 PC đã trực giao (hình ảnh).Principal component thứ cha và tiếp nối tương tự

 

*

 

from sklearn.decomposition import PCApca = PCA(n_components=4)pca_result = pca.fit_transform(df.values)plt.plot(range(4), pca.explained_variance_ratio_)plt.plot(range(4), np.cumsum(pca.explained_variance_ratio_))plt.title("Component-wise and Cumulative Explained Variance")

*

 

import seaborn as snsplt.style.use("fivethirtyeight")fig, axarr = plt.subplots(2, 2, figsize=(12, 8))sns.heatmap(pca.components_<0, :>.reshape(28, 84), ax=axarr<0><0>, cmap="gray_r")sns.heatmap(pca.components_<1, :>.reshape(28, 84), ax=axarr<0><1>, cmap="gray_r")sns.heatmap(pca.components_<2, :>.reshape(28, 84), ax=axarr<1><0>, cmap="gray_r")sns.heatmap(pca.components_<3, :>.reshape(28, 84), ax=axarr<1><1>, cmap="gray_r")axarr<0><0>.set_title("0:.2f% Explained Variance".format(pca.explained_variance_ratio_<0>*100),fontsize=12)axarr<0><1>.set_title("0:.2f% Explained Variance".format(pca.explained_variance_ratio_<1>*100),fontsize=12)axarr<1><0>.set_title("0:.2f% Explained Variance".format(pca.explained_variance_ratio_<2>*100),fontsize=12)axarr<1><1>.set_title("0:.2f% Explained Variance".format(pca.explained_variance_ratio_<3>*100),fontsize=12)axarr<0><0>.set_aspect("equal")axarr<0><1>.set_aspect("equal")axarr<1><0>.set_aspect("equal")axarr<1><1>.set_aspect("equal")plt.suptitle("4-Component PCA")

*

 

Linear Discriminatory Analysis: nghệ thuật supervised, mục tiêu hướng đến việc giữ các nhất đặc điểm quyết định phân loại của những biến phụ thuộc. Thuật toán LDA đo lường và thống kê khả năng phân biệt những lớp, tiếp nối tính khoảng cách giữa những mẫu của mỗi lớp cùng với trung bình. ở đầu cuối đưa tập dữ liệu về chiều bé dại hơn.

 

*

 

Singular Value Composition:. SVD trích xuất feature đặc biệt nhất khỏi tập dữ liệu. Cách thức này khá phổ cập vì dựa trên mô hình toán học tuyến tính. Nhìn tổng thể SVD đang tận dụng trị riêng với vector riêng rẽ để khẳng định và tách các trở thành 3 ma trận cùng với mục đích đào thải các feature ít đặc biệt trong tập dữ liệu.

from sklearn.decomposition import Truncated
SVD svd = Truncated
SVD(n_components=3, random_state=226).fit_transform(df.values)plt.figure(figsize=(12,8))plt.title("SVD Components")plt.scatter(svd<:,0>, svd<:,1>)plt.scatter(svd<:,1>, svd<:,2>)plt.scatter(svd<:,2>,svd<:,0>)

*

 

Independent Component Analysis: ICA phương pháp này dựa trên lý thuyết truyền ti với cũng là 1 trong những một phương thức rất phổ biến. PCA vẫn tìm các yếu tố ít đối sánh trong lúc ICA chú trọng vào những biến độc lập

from sklearn.decomposition import Fast
ICA ICA = Fast
ICA(n_components=3, random_state=12) X=ICA.fit_transform(df.values)plt.figure(figsize=(12,8))plt.title("ICA Components")plt.scatter(X<:,0>, X<:,1>)plt.scatter(X<:,1>, X<:,2>)plt.scatter(X<:,2>, X<:,0>)

*

 

3. Manifold learning tuyệt non-linear method

Một hướng tiếp cận không giống theo phi tuyến tính (hay cần sử dụng projection-phương pháp chiếu) là manifold learning. Có thể hiểu đơn giản và dễ dàng là tận dụng tính năng hình học để chiếu những điểm xuống chiều không khí thấp hơn cơ mà vẫn duy trì được đặc trưng của dữ liệu.

 

*

 

Isometric Feature Mapping (Isomap): cách thức này bảo toàn được mối contact của tập dữ liệu bằng cách tạo ra tập dữ liệu embedded. Đầu tiên, thuật toán tạo ra mạng lạm cận, cầu lượng khoảng cách trắc địa, khoảng cách ngắn duy nhất giữa nhì điểm trên mặt phẳng cong, giữa tất cả các điểm. Cùng cuối cùng, bởi việc sử dụng phân rã trị riêng của ma trận khoảng cách Geodesic, tập tài liệu với số chiều nhỏ tuổi hơn được sinh sản ra

from sklearn import manifold trans_data = manifold.Isomap(n_neighbors=5, n_components=3, n_jobs=-1).fit_transform(df<:6000>.values)plt.figure(figsize=(12,8))plt.title("Decomposition using ISOMAP")plt.scatter(trans_data<:,0>, trans_data<:,1>)plt.scatter(trans_data<:,1>, trans_data<:,2>)plt.scatter(trans_data<:,2>, trans_data<:,0>)

*

 

t-Distributed Stochastic Neighbour (t-SNE): rất nhạy với các cấu trúc local. T-SNE thường được áp dụng với mục đích visualize dữ liệu nhằm mục tiêu giúp đọc được thuộc tính định hướng của tập dữ liệu. Tuy vậy đây cũng là cách thức đòi hỏi hiệu năng tính toán cao với cũng rất cần được áp dụng các kỹ thuật khác ví như missing values ratio hoặc scale feature.

from sklearn.manifold import TSNE tsne = TSNE(n_components=3, n_iter=300).fit_transform(df<:6000>.values)plt.figure(figsize=(12,8))plt.title("t-SNE components")plt.scatter(tsne<:,0>, tsne<:,1>)plt.scatter(tsne<:,1>, tsne<:,2>)plt.scatter(tsne<:,2>, tsne<:,0>)

*

 

Locally linear embedding (LLE). Cũng như với ý tưởng tương tự như Isomap, nhưng lại LLE kiếm tìm k-NN của các điểm; cầu lượng từng điểm vector dữ liệu như là tổng hợp của k
NN. Kế tiếp tạo ra các vector không nhiều chiều hơn để "copy" lại những trọng số ở trên. Quan sát chung phương pháp này rất có thể phát hiện được rất nhiều feature hơn cách thức tuyến tính thông thường, và tác dụng hơn các cách thức khác.

from sklearn.manifold import Locally
Linear
Embeddingembedding = Locally
Linear
Embedding(n_components=3).fit_transform(df<:6000>.values)plt.figure(figsize=(12,8))plt.title("Local Linear Embeđing")plt.scatter(embedding<:,0>, embedding<:,1>)plt.scatter(embedding<:,1>, embedding<:,2>)plt.scatter(embedding<:,2>, embedding<:,0>)

*

 

Dùng Hessian matrix thì cũng sử dụng Locally
Linear
Embeg dding của sklearn, với lưu giữ truyền tham số method="hessian" cùng tham số n_neighbors phải lớn hơn là ok.

from sklearn.manifold import Locally
Linear
Embedding
Heissian
Eigenmapping = Locally
Linear
Embedding(eigen_solver="dense", n_components=3, n_neighbors=10,method="hessian", random_state=226).fit_transform(df<:6000>.values)plt.figure(figsize=(12,8))plt.title("Heissian Eigenmapping")plt.scatter(Heissian
Eigenmapping<:,0>, Heissian
Eigenmapping<:,1>)plt.scatter(Heissian
Eigenmapping<:,1>, Heissian
Eigenmapping<:,2>)plt.scatter(Heissian
Eigenmapping<:,2>, Heissian
Eigenmapping<:,0>)

*

 

Spectral Embedding: sử dụng kỹ thụât spectral (phổ) nhằm mapping dữ liệu xuống chiều phải chăng hơn, ưu tiên các điểm ngay gần nhau rộng là tuyến đường tính cận nhau.

from sklearn.manifold import Spectral
Embeddingspectral
Embedding = Spectral
Embedding(n_components=3, random_state=226).fit_transform(df<:6000>.values)plt.figure(figsize=(12,8))plt.title("Spectral Embedding")plt.scatter(spectral
Embedding<:,0>, spectral
Embedding<:,1>)plt.scatter(spectral
Embedding<:,1>, spectral
Embedding<:,2>)plt.scatter(spectral
Embedding<:,2>, spectral
Embedding<:,0>)

*

 

Multidimensional scaling (MDS):

from sklearn.manifold import MDSmds = MDS(n_components=3, random_state=226).fit_transform(df<:6000>.values)plt.figure(figsize=(12,8))plt.title("MDS")plt.scatter(mds<:,0>, mds<:,1>)plt.scatter(mds<:,1>, mds<:,2>)plt.scatter(mds<:,2>, mds<:,0>)

*

 

Summary

Không có cách thức nào là "bá đạo" cả, việc chọn method tương xứng phụ thuộc không ít yếu tố, đặc thù tập dữ liệu và phối kết hợp giữa những kỹ thuật không giống nhau, từ kia tìm ra phương pháp tốt nhất.

Và ngoài những điều trên, các kỹ thuật Dimensionality Reduction còn một vài hạn chế chung có thể kể cho như: mất mát dữ liệu khi giảm số chiều, trong chuyên môn PCA, đôi khi không principal components quan trọng lại chưa được rõ ràng...

Xem thêm: Đề Thi Toán Lớp 5 Kì 2 Môn Toán Lớp 5 Năm 2022 Tải Nhiều, Đề Ôn Thi Học Kì 2 Môn Toán Lớp 5

Code Colab tham khảo.

Trên đây là những phần mình tìm hiểu và tham khảo được.Xin cám ơn chúng ta đã thân mật và theo dõi nội dung bài viết ^.^

References

<1> https://towardsdatascience.com/11-dimensionality-reduction-techniques-you-should-know-in-2021-dcb9500d388b

<2> https://towardsdatascience.com/dimensionality-reduction-for-machine-learning-80a46c2ebb7e

<3> https://machinelearningmastery.com/dimensionality-reduction-for-machine-learning/

<4> https://towardsdatascience.com/techniques-for-dimensionality-reduction-927a10135356

<5> https://www.analyticsvidhya.com/blog/2018/08/dimensionality-reduction-techniques-python/

<6> https://gist.github.com/Amitdb123/1e191a36d1f36b7bdfcf13375e63694b#file-dimensionality_reduction-py

<7> https://scikit-learn.org/stable/auto_examples/manifold/plot_compare_methods.html#sphx-glr-auto-examples-manifold-plot-compare-methods-py

<8> https://www.kaggle.com/mtax687/explorations-of-fashion-mnist-dataset

<9> https://www.analyticsvidhya.com/blog/2017/05/comprehensive-guide-to-linear-algebra/