2. 파이톤이 접미사된 다변수 해석 6-2.척추 회귀·라소 회귀(scikit-learn)[척추 회귀 vs 라소 회귀]
(1) 라이브러리 가져오기
# データ加工・計算・分析ライブラリ
import numpy as np
import pandas as pd
# グラフ描画ライブラリ
import matplotlib.pyplot as plt
%matplotlib inline
# 機械学習ライブラリ
import sklearn
(2) 데이터 획득 및 읽기
# データを取得
url = 'https://raw.githubusercontent.com/yumi-ito/datasets/master/datasets_auto_4variables_pre-processed.csv'
# 取得したデータをDataFrameオブジェクトとして読み込み
df = pd.read_csv(url, header=None)
# 列ラベルを設定
df.columns = ['width', 'height', 'horsepower', 'price']
print(df)
# データ形状の確認
print('データ形状:', df.shape)
# 欠損値の確認
print('欠損値の数:{}\n'.format(df.isnull().sum().sum()))
# データ型の確認
print(df.dtypes)
(트레이닝 데이터 분할 및 테스트 데이터)
# モデル構築のためのインポート
from sklearn.linear_model import Ridge, Lasso, LinearRegression
# データ分割のためのインポート
from sklearn.model_selection import train_test_split
drop()
함수를 통해 열을 삭제price
하고 설명 변수만 x로 설정하고 price
만 y로 설정합니다.train_test_split
방법으로 설명 변수 x, 목적 변수 y를 훈련 데이터(train)와 테스트 데이터(test)로 나눈다.# 説明変数と目的変数を設定
x = df.drop('price', axis=1)
y = df['price']
# 訓練データとテストデータに分割
X_train, X_test, Y_train, Y_test = train_test_split(x, y, test_size=0.5, random_state=0)
4. 모델의 생성과 평가
for
문장에 따라 모델 생성, 훈련 데이터의 정해율, 테스트 데이터의 정해율 계산까지 단숨에 회전한다.# 各クラスを初期化してdict型変数のmodelsに格納
models = {
'linear': LinearRegression(),
'ridge': Ridge(random_state=0),
'lasso': Lasso(random_state=0)}
# 正解率を格納するdict型変数を初期化
scores = {}
# 各モデルを順次生成し、正解率を算出して格納
for model_name, model in models.items():
# モデル生成
model.fit(X_train, Y_train)
# 訓練データの正解率
scores[(model_name, 'train')] = model.score(X_train, Y_train)
# テストデータの正解率
scores[(model_name, 'test')] = model.score(X_test, Y_test)
# dict型をpandasの1次元リストに変換
print(pd.Series(scores))
items():
를 사용하면 각 요소의 키와value를 얻을 수 있다.score()
함수를 통해 정확도를 계산하여 model_name
와 train
중 임의의 하나를 키로 저장한다.다시 돌아오다
산등성이.
라소 회귀
훈련 데이터의 정확도
0.733358
0.733355
0.733358
테스트 데이터의 정확도
0.737069
0.737768
0.737084
정규화 매개 변수
test
에 $$$US를 지정합니다알파=10.0달러를 시험해 보겠습니다.# パラメータ設定
alpha = 10.0
# 各クラスを初期化してmodelsに格納
models = {
'ridge': Ridge(alpha=alpha, random_state=0),
'lasso': Lasso(alpha=alpha, random_state=0)}
# 正解率を格納するdict型変数を初期化
scores = {}
# 各モデルを順次実行し、正解率を格納していく
for model_name, model in models.items():
model.fit(X_train, Y_train)
scores[(model_name, 'train')] = model.score(X_train, Y_train)
scores[(model_name, 'test')] = model.score(X_test, Y_test)
print(pd.Series(scores))
Ridge(train)
Ridge(test)
Lasso(train)
Lasso(test)
1
0.733355
0.737768
0.733358
0.737084
10
0.733100
0.743506
0.733357
0.737372
100
0.721015
0.771022
0.733289
0.740192
200
0.705228
0.778607
0.733083
0.743195
400
0.680726
0.779004
0.732259
0.748795
500
0.671349
0.777338
0.731640
0.751391
1000
0.640017
0.767504
0.726479
0.762336
Reference
이 문제에 관하여(2. 파이톤이 접미사된 다변수 해석 6-2.척추 회귀·라소 회귀(scikit-learn)[척추 회귀 vs 라소 회귀]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/y_itoh/items/ac5aa8225e4c72573c12텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)