흥미로운 기계 학습 프로젝트: 암석 대 광산 예측

국가 간에 전쟁이 있고 물 속에 암석이나 지뢰가 있는지 확인하기 위해 잠수함을 배정했다고 가정합니다.

지뢰는 물체에 닿으면 폭발하는 폭발물입니다.

그리고 바다에도 바위가 있을 수 있습니다.

무엇을 구축해야 합니까?
→ 잠수함은 기뢰를 건널지 바위를 건널지 예측해야 합니다. 그래서 우리는 잠수함 아래에 있는 물체가 광산인지 암석인지 예측할 수 있는 시스템을 구축해야 합니다.

어떻게 할 수 있습니까?
→ 잠수함은 소리 신호를 보내는 소나를 사용하고 신호의 스위치 백을 검토합니다. 따라서 이 신호는 물체가 내 것인지 또는 바다의 암석인지 감지하기 위해 처리됩니다.
이 음파는 수중에서 수백 마일을 이동할 수 있으며 소스에서 300마일까지 140데시벨의 강도를 유지할 수 있습니다.

워크플로우:



수집 소나 데이터 : 소나를 이용하여 신호를 송수신하는 실험실 설정 실험을 할 수 있습니다. 광산과 암석에서 수신되는 신호에는 큰 차이가 있습니다. 광산은 금속으로 만들어지기 때문입니다.
그래서 우리는 암석과 금속 실린더에서 얻은 소나 데이터에 불과한 이 데이터를 수집합니다.
그리고 나중에 이 소나 데이터를 사용하여 기계 학습 모델에 공급합니다.
그리고 우리 모델은 물체가 금속으로 구성되어 있는지 아니면 그냥 바위인지 예측할 것입니다.
이것이 우리가 예측에 사용할 원리입니다.

데이터 전처리 : 더 나은 결과를 위해 데이터를 처리해야 합니다. 전처리 과정에서 청소, 누락된 값 채우기 등을 수행합니다.

Train Test Split : 그 후, 훈련 데이터의 80-90%로 모델을 훈련하고 10-20%는 테스트 데이터로 사용됩니다. 그리고 테스트 데이터의 도움으로 모델을 평가합니다.

로지스틱 회귀 모델: 왜 로지스틱 회귀 모델인가? 이 모델은 이진 분류 문제에 매우 잘 작동하기 때문입니다. 이진 분류 문제(바위 또는 광산)입니다.
이것은 감독 학습 알고리즘입니다.



# Importing Dependencies
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score

# Dataset Reading
sonar_data=pd.read_csv("sonardata.csv",header=None)

# Check relation between classes
sonar_data.groupby(60).mean()

# Separating input-output columns
X=sonar_data.drop(columns=60,axis=1)
y=sonar_data[60]

# train_test_split
X_train,X_test,Y_train,Y_test=train_test_split(X,y,test_size=0.1,stratify=y,random_state=1)

# Model Building
model=LogisticRegression()

# Model Fitting
model.fit(X_train,Y_train)

# accuracy on training data
X_train_pred=model.predict(X_train)
training_data_accuracy=accuracy_score(X_train_pred,Y_train)

# accuracy on test data
X_test_pred=model.predict(X_test)
test_data_accuracy=accuracy_score(X_test_pred,Y_test)

# Check Github Link For Full Code And Dataset



Github 링크: Click Here

좋은 웹페이지 즐겨찾기