선형 회귀 계산을 통해 계수와 선택 모델 파트 확정2

개시하다


선형 회귀를 실행할 때 어떤 모델이 가장 효율적인지 시도해 보세요.데이터는 scikit-learn의breaast캔서로 이루어지다.이 데이터는 웨이스콘신 유방암 데이터 집합이라고 불리며 종양이 양성인지 악성인지를 판정한다.데이터는 569개로 양성 212개, 악성 357개, 특징량 30개였다.이 데이터를 사용하여 종양이 양성인지 악성인지 판정하는 모델을 만들고 결정 계수가 가장 높은 모델을 선택한다.
지난번선형 회귀 계산을 통해 계수와 선택 모델을 확정하다에서는 선형회귀, 라소회귀, 리디지회귀, 엘라스틱넷회귀의 결정계수를 얻었다.ElasticNet 회귀의 리ratio가 0.5만 실시했기 때문에 계수가 가장 큰 리를 결정한다ratio와 결정 계수를 구하다.

시리즈

  • 선형 회귀 계산을 통해 계수와 선택 모델을 확정하다
  • 선형 회귀 계산을 통해 계수와 선택 모델 파트 확정2
  • 단회귀 분석을 통해 공헌률을 계산하다
  • 선형 회귀와 특징량의 축소
  • 논리 회귀(분류)와 슈퍼 파라미터 조화
  • 선형 SVC(분류) 및 하이퍼매개변수 조정
  • 비선형 SVC(분류) 및 하이퍼패라메트릭 조정
  • 결정 트리와 슈퍼 파라미터 조정
  • 나무와 초파라미터의 조정 결정 2
  • 마지막 결과


    선형 회귀 방법
    메서드
    범용 수법
    확정 계수
    선형 회귀
    LinearRegression()
    -
    0.73
    복귀 Lasso
    Lasso()
    L1 정규화
    0.61
    복귀Riidge
    Ridge()
    L2 정규화
    0.72
    ElasticNet으로 복귀
    ElasticNet()
    L1&L2 정규화
    0.66
    ※ 엘라스틱넷 컴백 L1:L2 = 50:50

    이번 결과


    L1:L2 = 19:81 에서 최대 0.68 의 계수가 결정됩니다.(l1_ratio=0.19)

    절차.

  • 유방암 데이터 집합 읽기
  • 훈련 데이터와 테스트 데이터 분리
  • 확정 계수의 최대치를 초기화하고 리ratio와 결정 계수를 추가하는 빈 목록 준비하기
  • li_ratio 및 확정 계수 그리기
  • 결정 계수가 가장 클 때의 리출력 ratio 및 결정 계수
  • python 기반 설치

    import numpy as np
    from sklearn.datasets import load_breast_cancer
    from sklearn.linear_model import ElasticNet
    from sklearn.model_selection import train_test_split
    import matplotlib.pyplot as plt
    
    #データの読み込み
    cancer_data = load_breast_cancer()
    
    #データポイントと特徴量(569,30)
    print("データポイントと特徴量\n{}".format(cancer_data.data.shape))
    print("")
    
    #訓練データとテストデータを分離
    train_X, test_X, train_y, test_y = train_test_split(cancer_data.data, cancer_data.target, random_state=0)
    
    #モデルを学習し、最も高いl1の値と決定係数を出力する
    maxvalue = 0
    x = []
    y = []
    
    for i in range(1, 101):
        j = i / 100
        model = ElasticNet(l1_ratio=j)
        model.fit(train_X, train_y)
        score = model.score(test_X, test_y)
    
        x.append(j)
        y.append(score)
    
        if score >= maxvalue:
            maxvalue = score
            k = j
    
    plt.xlabel("l1_ratio")
    plt.ylabel("Coeficient of Determination")
    plt.plot(x, y)
    plt.show()
    
    print("最も決定係数が高くなるli_ratioは:{}".format(k))
    print("最も高い決定係数は:{:.2f}".format(maxvalue))
    
    출력
    データポイントと特徴量
    (569, 30)
    
    最も決定係数が高くなるli_ratio:0.19
    最も高い決定係数は:0.68
    

    끝말


    ElasticNet으로 돌아갈 때 계수가 가장 큰 리 결정ratio를 찾았습니다.그러나 선형 회귀와 관련이 없기 때문에 모델은 선형 회귀를 선택한다.

    좋은 웹페이지 즐겨찾기