선형 회귀 계산을 통해 계수와 선택 모델 파트 확정2
개시하다
선형 회귀를 실행할 때 어떤 모델이 가장 효율적인지 시도해 보세요.데이터는 scikit-learn의breaast캔서로 이루어지다.이 데이터는 웨이스콘신 유방암 데이터 집합이라고 불리며 종양이 양성인지 악성인지를 판정한다.데이터는 569개로 양성 212개, 악성 357개, 특징량 30개였다.이 데이터를 사용하여 종양이 양성인지 악성인지 판정하는 모델을 만들고 결정 계수가 가장 높은 모델을 선택한다.
지난번선형 회귀 계산을 통해 계수와 선택 모델을 확정하다에서는 선형회귀, 라소회귀, 리디지회귀, 엘라스틱넷회귀의 결정계수를 얻었다.ElasticNet 회귀의 리ratio가 0.5만 실시했기 때문에 계수가 가장 큰 리를 결정한다ratio와 결정 계수를 구하다.
시리즈
마지막 결과
선형 회귀 방법
메서드
범용 수법
확정 계수
선형 회귀
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)
절차.
L1:L2 = 19:81 에서 최대 0.68 의 계수가 결정됩니다.(l1_ratio=0.19)
절차.
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를 찾았습니다.그러나 선형 회귀와 관련이 없기 때문에 모델은 선형 회귀를 선택한다.
Reference
이 문제에 관하여(선형 회귀 계산을 통해 계수와 선택 모델 파트 확정2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/FujiedaTaro/items/a7a23ce321f7733ae9cf
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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를 찾았습니다.그러나 선형 회귀와 관련이 없기 때문에 모델은 선형 회귀를 선택한다.
Reference
이 문제에 관하여(선형 회귀 계산을 통해 계수와 선택 모델 파트 확정2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/FujiedaTaro/items/a7a23ce321f7733ae9cf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)