기계 학습 실험 - 데이터 인식 및 시각화

실험 제목: 데이터 인식 및 시각화

1. 실험 목적:

1. 기계 학습 데이터 세트에 대한 지각적 이해 확립
2. numpy를 사용하여 행렬을 생성하고 기본 행렬 계산을 수행하는 방법 숙달

2. 실험 단계:

① 선형 회귀 데이터 세트 무작위 생성
② 선형 분리 가능한 2클래스 분류 데이터 세트 무작위 생성
③ 선형 분리 가능한 다중 클래스 분류 데이터 세트 무작위 생성
 샘플 레이블은 원-핫 벡터
 샘플 레이블은 스칼라

3. 실험 결과:

① 무작위로 선형 회귀 데이터 세트 생성

실험 코드:
여기에 이미지 설명 삽입

실험 결과:
파라미터 ① 샘플=10 dim=5 var = 0.02
여기에 이미지 설명 삽입여기에 이미지 설명 삽입

파라미터② 샘플=10 dim=5 var = 0.05
여기에 이미지 설명 삽입
여기에 이미지 설명 삽입

파라미터③ 샘플=5 dim=5 var = 0.02
여기에 이미지 설명 삽입

파라미터 ④ 샘플=10 dim=3 var = 0.02

여기에 이미지 설명 삽입
여기에 이미지 설명 삽입

질문 1: 샘플을 선택하고 샘플, 무게 및 레이블 사이의 관계를 관찰하십시오.

이 코드는 10개의 샘플과 5개의 기능이 있는 데이터 세트를 생성하며 각 기능의 값은 평균이 0이고 분산이 1인 가우시안 분포에서 무작위로 추출됩니다. 그런 다음 무작위로 가중치 벡터 w를 생성하고 일부 가우시안 노이즈가 추가된 각 샘플 x의 가중치 합계(즉, y=xw)로 레이블 y를 계산합니다. 마지막으로 쉽게 관찰할 수 있도록 기능과 레이블 간의 관계를 시각화합니다.

실험 코드는 다음과 같습니다.
여기에 이미지 설명 삽입

다음은 데이터 세트를 생성한 후의 이미지입니다.
여기에 이미지 설명 삽입

각 기능에 대해 해당 기능과 레이블 사이에 대략 선형 관계가 있음을 알 수 있습니다. 이는 선형 회귀 모델을 사용하여 레이블을 예측할 수 있음을 의미합니다.

질문 2: 데이터 세트 매개변수 샘플, dim, var를 수정하고 생성된 행렬의 차원 변화를 관찰합니다.

x, w, r, y 행렬 차원은 매개변수 랜덤 오류 및 정규 분포의 분산 var와 무관하며, xw 행렬 차원은 매개변수 샘플 피처 번호 dim과 관련되며 이는 dim이 증가함에 따라 증가하고 양의 선형 상관 관계; xry 행렬 차원 매개 변수 샘플의 샘플 수와 관련이 있으며 샘플이 증가함에 따라 증가하며 양의 선형 상관 관계를 갖습니다.

2. 선형적으로 분리 가능한 2등급 분류 데이터 세트를 무작위로 생성

실험 코드:
여기에 이미지 설명 삽입

실험 결과:
여기에 이미지 설명 삽입
여기에 이미지 설명 삽입

질문 1: 샘플을 선택하고 샘플, 중량 및 확률, 라벨 사이의 관계를 관찰합니다.

① 선형 분리 가능한 2등급 분류 데이터 세트를 생성합니다. 100개의 샘플을 포함하는 데이터 세트를 생성해야 한다고 가정합니다. 각 샘플에는 두 가지 기능이 있고 레이블은 0 또는 1이며 실험 코드는 다음과 같습니다.
여기에 이미지 설명 삽입
여기에 이미지 설명 삽입

② 이제 샘플 중 하나를 선택하여 가중치 및 레이블과의 관계를 분석할 수 있습니다. 50번째 샘플을 선택하고 특정 값은 다음과 같습니다.
여기에 이미지 설명 삽입

③ 출력 결과는 다음과 같습니다.
여기에 이미지 설명 삽입

④ 이것은 샘플에 값이 -0.248과 -0.41인 두 가지 특성이 있음을 의미합니다. 분류를 위해 로지스틱 회귀 모델을 사용하면 학습된 가중치를 통해 이 샘플이 레이블 1에 속할 확률을 계산할 수 있습니다. 모델을 훈련하고 가중치 세트 w=[0.5, 0.7]를 얻었다고 가정하면 샘플이 레이블 1에 속할 확률은 다음과 같이 계산할 수 있습니다.

샘플 라벨 실험 결과:

여기에 이미지 설명 삽입

100개의 샘플 데이터 세트 시각화 이미지:
여기에 이미지 설명 삽입

3. 선형 분리 가능한 다중 클래스 분류 데이터 set-one-hot 벡터를 무작위로 생성
실험 코드:
여기에 이미지 설명 삽입

실험 결과:
여기에 이미지 설명 삽입여기에 이미지 설명 삽입
여기에 이미지 설명 삽입
여기에 이미지 설명 삽입

여기에 이미지 설명 삽입

질문 1: 샘플을 선택하고 샘플, 가중치 및 확률, 레이블 사이의 관계를 관찰하십시오.

① 선형 분리 가능한 다중 클래스 분류 데이터 세트 무작위로 생성
Python의 scikit-learn 라이브러리를 사용하여 선형 분리 가능한 다중 클래스 분류 데이터 세트를 생성할 수 있습니다. 그 중 make_classification 함수를 사용하여 여러 카테고리가 있는 데이터 세트를 생성할 수 있습니다. 1000개의 샘플, 10개의 기능 및 5개의 클래스가 있는 데이터 세트를 생성합니다. 각 클래스는 하나의 클러스터 센터만 포함합니다.

②카테고리를 원-핫 벡터로 변환하고 각 카테고리를 원-핫 벡터로 변환합니다. 이것은 scikit-learn의 OneHotEncoder 클래스를 사용하여 수행할 수 있습니다. 먼저 y를 열 벡터로 변환한 다음 OneHotEncoder 클래스를 사용하여 원-핫 벡터로 변환합니다.

③ 샘플, 가중치, 확률 및 레이블 간의 관계 관찰
scikit-learn의 LogisticRegression 클래스를 사용하여 로지스틱 회귀 모델을 훈련하고 샘플, 가중치, 확률 및 레이블 간의 관계를 관찰할 수 있습니다. 샘플을 임의로 선택한 다음 훈련된 로지스틱 회귀 모델을 사용하여 샘플의 가중치와 확률을 계산합니다. 마지막으로 샘플, 가중치 및 확률, 레이블 간의 관계를 출력합니다.
위의 단계를 통해 선형적으로 분리 가능한 다중 클래스 분류 데이터 세트와 원-핫 벡터를 생성하고 샘플, 가중치 및 해당 확률 및 레이블 간의 관계를 관찰할 수 있습니다. 이를 통해 모델 작동 방식을 더 잘 이해하고 가능한 문제를 파악할 수 있습니다.

실험 코드:
여기에 이미지 설명 삽입

실험 결과:
여기에 이미지 설명 삽입

질문 2: 데이터 세트 매개변수 클래스를 수정하고 생성된 행렬의 차원 변화를 관찰하십시오.

매개변수 클래스를 변경하면 생성된 기능 행렬과 레이블 행렬의 모양이 그에 따라 변경됩니다. 특히 주어진 n_samplesn_samples 샘플 수와 n_featuresn_features 특징 수에 대해 매개변수 클래스의 값을 높이면 각 카테고리의 샘플 n_samples //classesn_samples//classes 수가 줄어들기 때문에 카테고리 간의 모든 차이는 더 발음.

특히 매개변수 클래스가 다른 값을 가질 때 생성된 행렬의 차원은 다음과 같습니다.

class=2일 때, 생성된 특징 행렬의 모양은 (n_samples, n_features)이고 레이블 행렬의 모양은 (n_samples, 2)입니다.
클래스=3일 때, 생성된 특징 행렬의 모양은 여전히 ​​(n_samples, n_features)이지만 레이블 행렬의 모양은 (n_samples, 3)입니다.
클래스=4일 때, 생성된 특징 행렬의 모양은 여전히 ​​(n_samples, n_features)이지만 레이블 행렬의 모양은 (n_samples, 4)입니다.
유사하게 클래스의 값을 높이면 레이블 행렬의 열 수가 그에 따라 증가하지만 기능 행렬은 동일하게 유지됩니다.

4. 선형적으로 분리 가능한 다중 클래스 분류 데이터 세트를 무작위로 생성합니다. 레이블은 스칼라입니다.

실험 코드:
여기에 이미지 설명 삽입

실험 결과:
여기에 이미지 설명 삽입여기에 이미지 설명 삽입

질문 1: 각 샘플에 대한 레이블로 스칼라를 생성하도록 코드 라인 6과 7을 수정합니다. 이 스칼라는 샘플이 속한 범주의 일련 번호에 해당합니다.

수정된 코드:
여기에 이미지 설명 삽입

수정된 코드는 정수 배열 y를 생성합니다. 여기서 y[i]는 i번째 샘플의 범주 번호를 나타냅니다(0부터 시작).

작업 결과:
여기에 이미지 설명 삽입

질문 2: 샘플을 선택하고 생성된 레이블이 올바른지 확인하십시오.

실험 코드: np.argmax 함수는 각 샘플이 속한 범주를 찾는 데 사용되며 스칼라 레이블로 사용됩니다.
여기에 이미지 설명 삽입

42번째 샘플을 검사 대상으로 선택하고 검사 결과는 다음과 같습니다.
여기에 이미지 설명 삽입

난수 생성기의 임의성으로 인해 코드를 실행할 때마다 다른 결과를 얻을 수 있지만 코드가 올바른 경우 해당 출력은 샘플이 동일한 클래스 및 레이블에 속함을 나타내야 합니다.

4. 확장 질문

여기에 이미지 설명 삽입

3차원 데이터 세트의 경우 시각화를 위해 3차원 산점도를 사용할 수 있습니다. 범주의 수가 5개이므로 다른 범주를 구분하기 위해 다른 색상이나 모양을 사용할 수 있습니다.

실험 코드:
여기에 이미지 설명 삽입

실험 결과:
여기에 이미지 설명 삽입

5. 실험적 경험

머신러닝의 입문 실험으로 데이터 인식과 시각화가 매우 중요합니다. 이 랩에서는 탐색적 분석과 데이터 시각화를 수행하여 데이터 세트와 문제를 더 잘 이해할 수 있습니다.
먼저 데이터 시각화를 진행하기 전에 데이터 세트에 대한 포괄적인 이해가 필요합니다. 여기에는 데이터 세트의 기능, 변수 유형(불연속형 또는 연속형), 누락된 값 등에 대한 정보가 포함됩니다. 그런 다음 히스토그램, 산점도, 상자 그림 등과 같은 다양한 시각화 도구를 사용하여 다양한 기능 간의 관계를 탐색하고 이상값 또는 이상값을 확인할 수 있습니다. 이상값 또는 이상값이 있는 경우 이를 처리하거나 제외하는 방법을 고려해야 합니다.
또한 데이터 시각화는 모델 교육에 적합한 기능을 선택하는 데도 도움이 됩니다. 서로 다른 특징과 대상 변수 사이의 관계를 관찰함으로써 어떤 특징이 예측 결과에 영향을 미칠 수 있는지 판단하고 그에 따라 최상의 특징 세트를 선택할 수 있습니다.
결론적으로 데이터 인식 및 시각화는 기계 학습 실행의 필수 단계입니다. 데이터의 탐색적 분석과 시각화를 통해 데이터 세트와 문제를 더 잘 이해하고, 적절한 기능을 선택하고, 이상값을 찾을 수 있습니다. 데이터 분석 작업이 매우 유용합니다.

추천

출처blog.csdn.net/xqmids99/article/details/130492394