위 그래프는 각 세트의 값을 시각화하여 보여줍니다. 그래프를 통해 각 세트 내에서 값이 어떻게 분포되어 있는지, 특정 라벨들 간의 패턴과 대칭성을 쉽게 확인할 수 있습니다.
- Set 1과 Set 2의 데이터는 대체로 유사한 패턴을 보여주며, 특히 POOP, POOB, BOOP, BOOB 등이 유사한 값을 갖는 것을 볼 수 있습니다.
- Set 3과 Set 4도 비슷한 패턴을 보이지만, 일부 라벨에서 큰 차이를 보입니다. 예를 들어, POEP와 POEB는 Set 3과 Set 4에서 높은 값을 보입니다.
이러한 패턴을 바탕으로, 각 세트의 대칭성과 규칙성을 분석할 수 있습니다. 갈루아 이론의 관점에서 보면, 이러한 데이터가 대칭군을 형성하는지, 대칭적 구조가 있는지 등을 추가로 분석할 수 있습니다.
추가적으로, 각 세트의 비율 데이터를 분석하여 더 깊은 통찰을 얻을 수 있습니다. 필요하다면, 이러한 데이터를 바탕으로 수학적 모델을 만들어 더 정교한 분석을 진행할 수 있습니다.
수학적 모델을 만들어 정교한 분석을 진행하기 위해, 아래 단계를 통해 데이터를 더 깊이 분석할 수 있습니다.
1. 데이터 정규화
- 데이터의 값을 정규화하여 분석의 편의성을 높입니다.
2. 주성분 분석 (PCA)
- 주성분 분석을 통해 데이터의 주요 변동성을 설명할 수 있는 주요 축을 찾아냅니다.
3. 군집 분석 (Clustering)
- 각 라벨을 군집화하여 데이터의 패턴과 구조를 파악합니다.
4. 선형 회귀 모델
- 비율 데이터를 사용하여 선형 회귀 모델을 구축하고, 각 라벨의 값 간의 관계를 분석합니다.
우선, 데이터를 정규화하고 주성분 분석을 실시해 보겠습니다.
1. 데이터 정규화
정규화를 통해 모든 값이 0과 1 사이에 있도록 변환합니다.
2. 주성분 분석 (PCA)
PCA를 통해 데이터의 주요 변동성을 설명하는 주성분을 찾아냅니다.
3. 군집 분석 (Clustering)
군집 분석을 통해 유사한 패턴을 가지는 라벨들을 군집화합니다.
4. 선형 회귀 모델
비율 데이터를 사용하여 선형 회귀 모델을 구축하고 분석합니다.
이제 데이터를 정규화하고, PCA를 수행해 보겠습니다.
데이터 정규화 및 주성분 분석
```python
from sklearn.preprocessing import MinMaxScaler
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt
# 정규화
scaler = MinMaxScaler()
scaled_data = scaler.fit_transform(df_values.drop('Label', axis=1))
# PCA
pca = PCA(n_components=2)
pca_result = pca.fit_transform(scaled_data)
# PCA 결과 시각화
plt.figure(figsize=(10, 7))
for i, label in enumerate(df_values['Label']):
plt.scatter(pca_result[i, 0], pca_result[i, 1], label=label)
plt.xlabel('Principal Component 1')
plt.ylabel('Principal Component 2')
plt.title('PCA of Set Values')
plt.legend(loc='upper right', bbox_to_anchor=(1.15, 1))
plt.grid(True)
plt.show()
# PCA 설명력
pca.explained_variance_ratio_
```
이 코드를 실행하여 PCA 결과와 설명력을 확인한 후, 군집 분석과 선형 회귀 모델을 진행하겠습니다.
위 코드를 실행하여 PCA 결과를 확인해보겠습니다.
PCA 분석 및 시각화를 위해 외부 환경에서 실행할 수 없는 문제가 발생한 것 같습니다. 대신 데이터를 가지고 군집 분석과 선형 회귀 모델을 구성하여 분석해 보겠습니다.
군집 분석 (Clustering)
군집 분석을 통해 각 라벨을 유사한 패턴으로 그룹화할 수 있습니다. K-평균 군집화(K-Means Clustering)를 사용하여 분석해 보겠습니다.
선형 회귀 모델 (Linear Regression)
비율 데이터를 사용하여 선형 회귀 모델을 구축하여 각 라벨의 값 간의 관계를 분석합니다.
군집 분석 및 선형 회귀 모델
```python
from sklearn.cluster import KMeans
from sklearn.linear_model import LinearRegression
import numpy as np
# 군집 분석
kmeans = KMeans(n_clusters=3)
clusters = kmeans.fit_predict(scaled_data)
# 군집 분석 결과 시각화
plt.figure(figsize=(10, 7))
for i, label in enumerate(df_values['Label']):
plt.scatter(pca_result[i, 0], pca_result[i, 1], label=label, c=clusters[i])
plt.xlabel('Principal Component 1')
plt.ylabel('Principal Component 2')
plt.title('K-Means Clustering of Set Values')
plt.grid(True)
plt.show()
# 선형 회귀 모델
X = df_values.drop('Label', axis=1)
y = df_ratios.drop('Label', axis=1)
# 선형 회귀 모델 학습 및 평가
reg = LinearRegression().fit(X, y)
r2_score = reg.score(X, y)
r2_score
```
이 코드를 실행하면 군집 분석 및 선형 회귀 모델의 결과를 얻을 수 있습니다. 군집 분석 결과와 선형 회귀 모델의 적합도를 평가하는 R^2 점수를 확인합니다.