ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • RANSAC(RANdom Sample Consensus) in python
    data-science-summary/summary 2020. 9. 20. 18:34
    반응형

    <엔지니어는 구현을 못하면 모르는것이다>

    RANSAC(RANdom Sample Consensus)

    최소자승법(Linear Least Square)을 통한 예측은 아웃라이어가 있으면 크게 영향을 받는 반면

    RANSAN은 가장 많은 수의 데이터들이 예측 모델 근방에 있는 모델을 선택하는 방법으로 아웃라이어에 강건하다.

    데이터의 특정 두 점 또는 3점을 랜덤 선택하고 이 점으로 모델을 계산

    => 모델 주위(오차범위내)의 데이터 개수를 계산

    => 계산한 결과가 원하는 데이터 개수보다 적으면 다시 현재 오차범위내 데이터들로 다시 모델을 추정

    => 원하는 데이터 개수를 만족하면 모델을 저장

    => 이를 원하는 만큼 반복한뒤 최적의 모델 선택

    from sklearn.linear_model import RANSACRegressor
    from sklearn.model_selection import train_test_split
    # 회귀용 가상 데이터 생성
    from sklearn.datasets import make_regression
    # n_samples: 표본 데이터 수 , n_features: 독립변수 수, n_informative: 독립변수중 종속변수와 상관관계 있는 성분 수
    X, y = make_regression(n_samples=10000, n_features=10, n_informative=5, random_state=123)
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=123)
    
    from sklearn.linear_model import RANSACRegressor
    reg = RANSACRegressor().fit(X, y)
    reg.score(X_train, y_train)
    
    reg.predict(X_test)
    reg.score(X_test, y_test)
    반응형

    댓글

Designed by Tistory.