1. Корреляционный анализ:

Корреляционный анализ — это метод исследования силы взаимосвязи между двумя переменными. Его можно использовать для выявления закономерностей в больших наборах данных. В Python библиотека Pandas предоставляет метод corr() для вычисления коэффициентов корреляции Пирсона для каждой пары переменных в наборе данных.

а. Корреляционный анализ Пирсона

Корреляционный анализ Пирсона — это статистический метод, используемый для измерения силы линейной зависимости между двумя переменными. Он используется для определения коэффициента корреляции, который является мерой силы связи между двумя переменными. Коэффициент находится в диапазоне от -1 до +1, где -1 указывает на сильную отрицательную корреляцию, 0 указывает на отсутствие корреляции, а +1 указывает на сильную положительную корреляцию. Этот анализ обычно используется для изучения взаимосвязи между двумя переменными, например, взаимосвязи между доходом и расходами или между возрастом и здоровьем.

import pandas as pd 
import scipy.stats 
data =pd.DataFrame({‘A’:[1,2,3,4,5], ‘B’:[2,4,6,8,10]}) 
correlation, p_value = scipy.stats.pearsonr(data[‘A’], data[‘B’]) 
print(‘Pearson correlation coefficient:’, correlation) 

б. Корреляционный анализ Спирмена

Корреляционный анализ Спирмена — это непараметрический статистический метод, используемый для измерения силы и направления взаимосвязи между двумя переменными. Это тип корреляционного анализа, который измеряет силу связи между двумя переменными, но, в отличие от корреляции Пирсона, он не основан на предположении о нормальности. Коэффициент корреляции Спирмена (r) используется для измерения силы связи между двумя переменными, где r находится в диапазоне от -1 до 1. Значение -1 указывает на полную отрицательную корреляцию, значение 0 указывает на отсутствие корреляции между двумя переменными. переменных, а значение 1 указывает на идеальную положительную корреляцию.

import pandas as pd import scipy.stats 
data = pd.DataFrame({‘A’:[1,2,3,4,5], ‘B’:[2,4,6,8,10]}) 
correlation, p_value = scipy.stats.spearmanr(data[‘A’],data[‘B’]) 

print(‘Spearman correlation coefficient:’, correlation)

2. Кластеризация:

Кластеризация — это метод машинного обучения, используемый для группировки похожих точек данных в кластеры. Его можно использовать для выявления закономерностей в больших наборах данных. В Python библиотека Scikit-learn предоставляет несколько алгоритмов кластеризации, таких как K-средние, иерархическая кластеризация и DBSCAN.

а. Кластеризация K-средних в Python:

Кластеризация K-средних — это тип алгоритма обучения без учителя, который разбивает набор данных на k кластеров, где k заранее определяется пользователем. Он работает путем случайного назначения каждой точки данных одному из k кластеров, а затем итеративной корректировки центроидов кластера (или среднего значения всех точек в кластере) до тех пор, пока не будут достигнуты оптимальные кластерные назначения. Кластеризация K-средних может использоваться для любого типа данных, включая числовые, категориальные и двоичные данные. В Python кластеризацию K-средних можно реализовать с помощью библиотеки Scikit-Learn.

import numpy as np 
from sklearn.cluster import KMeans 
# create random data 
X = np.random.randn(20, 3) 
# create kmeans object 
kmeans = KMeans(n_clusters=3) 
# fit and predict 
kmeans.fit(X) 
y_kmeans = kmeans.predict(X) 
# plot the clusters 
plt.scatter(X[:, 0], X[:, 1], c=y_kmeans, s=50, cmap='viridis')
centers = kmeans.cluster_centers_ 
plt.scatter(centers[:, 0], centers[:, 1], c=’black’, s=200, alpha=0.5)

б. Иерархическая кластеризация в Python:

Иерархическая кластеризация в Python — это неконтролируемый алгоритм машинного обучения, используемый для кластерного анализа. Это тип алгоритма агломерационной кластеризации, который работает путем построения иерархии кластеров, где каждый кластер формируется путем объединения двух наиболее похожих кластеров. Он начинается с рассмотрения каждой точки данных как единого кластера, а затем объединяет два наиболее похожих кластера до тех пор, пока не будет выполнен заранее определенный критерий остановки. Результатом является дендрограмма (или иерархическое дерево) кластеров.

import scipy.cluster.hierarchy as sch 
from sklearn.cluster import AgglomerativeClustering 
# create random data 
X = np.random.randn(20, 3) 
# create dendrogram 
dendrogram = sch.dendrogram(sch.linkage(X, method=’ward’)) 
# create hierarchical clusters 
hc = AgglomerativeClustering(n_clusters=5, affinity=’euclidean’, linkage=’ward’) 
# fit and predict 
y_hc = hc.fit_predict(X) 
# plot the clusters plt.scatter(X[y_hc == 0, 0], X[y_hc == 0, 1], s=100, c=’red’, label=’Cluster 1') plt.scatter(X[y_hc == 1, 0], X[y_hc == 1, 1], s=100, c=’blue’, label=’Cluster 2') plt.scatter(X[y_hc == 2, 0], X[y_hc == 2, 1], s=100, c=’green’, label=’Cluster 3') plt.scatter(X[y_hc == 3, 0], X[y_hc == 3, 1], s=100, c=’cyan’, label=’Cluster 4') plt.scatter(X[y_hc == 4, 0], X[y_hc == 4, 1], s=100, c=’magenta’, label=’Cluster5')
plt.title('Clusters of customers') 
plt.xlabel('Annual Income (k$)') 
plt.ylabel('Spending Score (1–100)') 
plt.legend() 
plt.show()

3. Обнаружение выбросов:

Обнаружение выбросов — это метод выявления точек в наборе данных, которые значительно отличаются от большинства данных. Его можно использовать для выявления закономерностей в больших наборах данных. В Python библиотека Scikit-learn предоставляет несколько алгоритмов обнаружения выбросов, таких как Isolation Forest и Local Outlier Factor.

Пример 1:

import numpy as np 
from scipy import stats 
# Create a random dataset 
data = np.random.randn(1000) 
# Calculate z-scores for the 
data zscores = stats.zscore(data) 
# Get outlier indices 
outlier_indices = np.where(np.abs(zscores) > 3) 
# Print outlier indices 
print(outlier_indices) 

Пример 2:

import pandas as pd 
# Read data from CSV file 
data = pd.read_csv(‘data.csv’) 
# Calculate interquartile range 
Q1 = data.quantile(0.25) 
Q3 = data.quantile(0.75) 
IQR = Q3 — Q1 
# Get outlier indices 
outlier_indices = data[(data < (Q1–1.5 * IQR)) | (data > (Q3 + 1.5 * IQR))].index 
# Print outlier indices 
print(outlier_indices)

4. Регрессионный анализ:

Регрессионный анализ — это метод изучения связи между зависимой переменной и одной или несколькими независимыми переменными. Его можно использовать для выявления закономерностей в больших наборах данных. В Python библиотека Statsmodels предоставляет несколько алгоритмов регрессии, таких как линейная регрессия и логистическая регрессия.

а. Простая линейная регрессия:

Это простой пример регрессионного анализа с использованием набора данных Boston Housing из sklearn. Цель состоит в том, чтобы предсказать медианную стоимость домов, занимаемых владельцами, в районе Бостона на основе других атрибутов.

import pandas as pd 
from sklearn.datasets import load_boston 
from sklearn.linear_model import LinearRegression 
# Load the Boston Housing dataset 
boston = load_boston() 
# Create a DataFrame object 
df = pd.DataFrame(boston.data, columns=boston.feature_names) 
# Add the target variable to the dataframe 
df[‘MEDV’] = boston.target 
# Create the features matrix 
X = df.drop(‘MEDV’, axis=1) 
# Create the target vector 
y = df[‘MEDV’] # Create the LinearRegression model object model = LinearRegression() 
# Train the model using the fit method 
model.fit(X, y) 
# Make predictions using the predict method 
predictions = model.predict(X) 

б. Множественная линейная регрессия:

В этом примере используется набор данных cars из репозитория машинного обучения UCI. Мы попытаемся предсказать цену автомобиля, учитывая набор характеристик, таких как мощность, марка, модель и т. д.

import pandas as pd 
import numpy as np 
from sklearn.linear_model import LinearRegression 
# Load the cars dataset 
df = pd.read_csv(‘cars.csv’) 
# Create the features matrix 
X = df.drop(‘price’, axis=1) 
# Create the target vector 
y = df[‘price’] 
# Create the LinearRegression model object 
model = LinearRegression() 
# Train the model using the fit method 
model.fit(X, y) 
# Make predictions using the predict method 
predictions = model.predict(X)

в. Полиномиальная регрессия:

В этом примере используется тот же набор данных об автомобилях из репозитория машинного обучения UCI. Мы попытаемся предсказать цену автомобиля с учетом набора характеристик, таких как мощность, марка, модель и т. д.

import pandas as pd 
import numpy as np 
from sklearn.preprocessing import PolynomialFeatures 
from sklearn.linear_model import LinearRegression
# Load the cars dataset 
df = pd.read_csv(‘cars.csv’) 
# Create the features matrix 
X = df.drop(‘price’, axis=1) 
# Create the target vector 
y = df[‘price’] 
# Create the PolynomialFeatures object 
poly = PolynomialFeatures(degree=2) 
# Transform the features matrix 
X_poly = poly.fit_transform(X) 
# Create the LinearRegression model object 
model = LinearRegression() 
# Train the model using the fit method 
model.fit(X_poly, y) 
# Make predictions using the predict method 
predictions = model.predict(X_poly) 
# Print out the predictions 
print(predictions)

д. Опорная векторная регрессия:

Алгоритм регрессии — это контролируемый алгоритм машинного обучения, который можно использовать для прогнозирования непрерывных числовых значений. Он основан на тех же принципах, что и алгоритм машины опорных векторов. В отличие от других алгоритмов регрессии, регрессия опорных векторов способна работать с нелинейными данными. Он использует трюк ядра для преобразования данных в более высокие измерения, а затем находит наиболее подходящую гиперплоскость для соответствия данным. Библиотека scikit-learn в Python предоставляет реализацию алгоритма регрессии опорных векторов. Его можно использовать для подбора регрессионной модели к заданному набору данных. Затем модель можно использовать для прогнозирования новых данных.

import numpy as np 
from sklearn.svm import SVR 
X = np.array([[1,2,3], [4,5,6], [7,8,9], [10,11,12]]) 
y = np.array([1,2,3,4]) 
svr_rbf = SVR(kernel=’rbf’, C=1e3, gamma=0.1)
svr_lin = SVR(kernel=’linear’, C=1e3) 
svr_poly = SVR(kernel=’poly’, C=1e3, degree=2) 
svr_rbf.fit(X, y) 
svr_lin.fit(X, y) 
svr_poly.fit(X, y) 
print(“RBF kernel: “, svr_rbf.predict(X)) 
print(“Linear kernel: “, svr_lin.predict(X)) 
print(“Polynomial kernel: “, svr_poly.predict(X))

е. Регрессия дерева решений:

Регрессия дерева решений — это контролируемый алгоритм машинного обучения, который строит модель на основе решений, принятых пользователем. Он используется для прогнозирования непрерывных значений, таких как цена акций или температура в помещении. Он работает, создавая древовидную структуру решений, которые используются для прогнозирования. Каждая ветвь дерева представляет собой решение, а листья представляют прогнозируемые значения. Модель обучается на данных, и алгоритм строит древовидную структуру, чтобы определить наиболее важные факторы, влияющие на прогноз. Затем модель используется для прогнозирования новых данных. Регрессию дерева решений можно использовать в различных приложениях, от прогнозирования цен на акции до прогнозирования температуры.

#Importing Libraries 
import numpy as np 
import matplotlib.pyplot as plt 
import pandas as pd 
#Importing dataset 
dataset = pd.read_csv(‘Position_Salaries.csv’) 
X = dataset.iloc[:, 1:2].values 
y = dataset.iloc[:, 2].values 
#Fitting Decision Tree Regression to the dataset from sklearn.tree import DecisionTreeRegressor 
regressor = DecisionTreeRegressor(random_state = 0) 
regressor.fit(X, y) 
#Predicting a new result 
y_pred = regressor.predict(6.5) 
#Visualising the Decision Tree Regression results (higher resolution) 
X_grid = np.arange(min(X), max(X), 0.01) 
X_grid = X_grid.reshape((len(X_grid), 1)) 
plt.scatter(X, y, color=’red’) 
plt.plot(X_grid, regressor.predict(X_grid), color = ‘blue’) 
plt.title(‘Truth or Bluff (Decision Tree Regression)’) 
plt.xlabel(‘Position level’) 
plt.ylabel(‘Salary’) 
plt.show()

ф. Случайная лесная регрессия:

Random Forest Regression — это контролируемый алгоритм машинного обучения, используемый для задач регрессии. Он использует несколько деревьев решений, чтобы делать прогнозы, комбинируя результаты отдельных деревьев. Алгоритм может обрабатывать как категориальные, так и числовые данные и является мощным инструментом для создания точных прогнозов. Регрессия случайного леса — это метод ансамбля, то есть он объединяет результаты нескольких деревьев решений для получения более точных прогнозов. Это также снижает риск переобучения, поскольку модель менее подвержена переоснащению по сравнению с отдельными деревьями решений.

#importing libraries 
from sklearn.ensemble import RandomForestRegressor 
from sklearn.model_selection import train_test_split 
import pandas as pd 
import numpy as np 
#loading the dataset 
df = pd.read_csv(“data.csv”) 
#splitting the dataset 
X = df.drop([‘target’], axis = 1) 
y = df[‘target’] 
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3, random_state = 0) 
#training the model 
regressor = RandomForestRegressor(n_estimators = 100, random_state = 0) 
regressor.fit(X_train, y_train) 
#predicting the test set results 
y_pred = regressor.predict(X_test) 
#evaluating the model from sklearn.metrics 
import mean_squared_error 
mse = mean_squared_error(y_test, y_pred) 
rmse = np.sqrt(mse) 
#printing the results 
print(“Root mean squared error: {}”.format(rmse))

г. K-ближайших соседей регрессии K-ближайших соседей регрессии является контролируемым алгоритмом обучения, который использует K ближайших точек данных к входным данным для прогнозирования непрерывного вывода. Это полезно, когда существует нелинейная связь между входом и выходом, так как он может фиксировать сложные закономерности в данных. Регрессия KNN также относительно проста в реализации и может использоваться в приложениях реального времени, таких как прогнозирование фондового рынка или погоды.

from sklearn.neighbors 
import KNeighborsRegressor 
# Create the knn model 
knn_model = KNeighborsRegressor() 
# Train the model using the training data 
knn_model.fit(X_train, y_train) 
# Make predictions on the test data 
predictions = knn_model.predict(X_test) 
# Evaluate the model 
score = knn_model.score(X_test, y_test) print(“KNN Regressor score: %.2f” % score)

час Многоуровневая регрессия персептрона с использованием scikit-learn

Регрессия многослойного персептрона (MLP) — это тип искусственной нейронной сети, используемый для контролируемого обучения. Он состоит из нескольких слоев, содержащих набор нейронов, причем каждый слой связан со следующим. Нейроны во входном слое представляют вектор входных признаков, а нейроны в выходном слое представляют выходные значения. Нейроны в скрытых слоях используют нелинейные функции активации для обработки входных данных. Веса нейронов корректируются в процессе обучения, чтобы сеть могла научиться оптимальному сопоставлению между входом и выходом. Цель регрессии MLP состоит в том, чтобы свести к минимуму ошибку прогнозирования между прогнозируемыми и наблюдаемыми значениями.

# Importing Libraries 
import pandas as pd 
from sklearn.preprocessing import StandardScaler 
from sklearn.neural_network import MLPRegressor 
# Loading the dataset 
data = pd.read_csv(‘file_name.csv’) 
# Separating the independent and dependent variables 
X = data.iloc[:, :-1].values 
y = data.iloc[:, -1].values 
# Scaling the data scaler = StandardScaler() 
X = scaler.fit_transform(X) 
# Training the MLP regressor 
mlp_regressor = MLPRegressor(hidden_layer_sizes=(50, ), activation=’relu’, solver=’adam’, max_iter=200) 
mlp_regressor.fit(X, y) 
# Predictions y_pred = 
mlp_regressor.predict(X) 
# Evaluating the model 
from sklearn.metrics import mean_squared_error 
mse = mean_squared_error(y, y_pred) 
print(“Mean Squared Error:”, mse)

5. Анализ основных компонентов (PCA):

PCA — это метод уменьшения размерности набора данных путем преобразования его в меньший набор некоррелированных переменных. Его можно использовать для выявления закономерностей в больших наборах данных. В Python библиотека Scikit-learn предоставляет метод PCA() для выполнения PCA.

а. Уменьшение размерности для распознавания лиц: PCA можно использовать для уменьшения размеров изображения лица с большего количества пикселей до меньшего набора функций, что делает распознавание лиц проще и эффективнее. б. Сжатие изображения: PCA можно использовать для уменьшения количества цветов в изображении и его сжатия без потери слишком большого количества информации.

в. Обработка текста: PCA можно использовать для уменьшения размеров набора текстовых данных и, таким образом, снижения вычислительных затрат на его анализ.

д. Кредитный скоринг: PCA можно использовать для определения наиболее важных факторов, определяющих кредитный рейтинг человека, что делает процесс кредитного скоринга более эффективным.

д. Анализ данных микрочипов: PCA можно использовать для уменьшения сложности данных об экспрессии генов за счет уменьшения количества переменных и упрощения анализа данных.