Pythonチュートリアル

Pythonホーム Pythonイントロ Pythonはじめに Python構文 Pythonコメント Python変数 Pythonデータ型 Python番号 Pythonキャスティング Python文字列 Pythonブール値 Python演算子 Pythonリスト Pythonタプル Pythonセット Python辞書 Python If ... Else PythonのWhileループ PythonForループ Python関数 Python Lambda Python配列 Pythonクラス/オブジェクト Pythonの継承 Pythonイテレータ Pythonスコープ Pythonモジュール Pythonの日付 Python数学 Python JSON Python RegEx Python PIP Python試してみてください... Pythonユーザー入力 Python文字列フォーマット

ファイル処理

Pythonファイル処理 Python読み取りファイル Python書き込み/ファイルの作成 Pythonファイルの削除

Pythonモジュール

NumPyチュートリアル パンダ攻略 Scipyチュートリアル

Python Matplotlib

Matplotlibイントロ Matplotlibはじめに Matplotlib Pyplot Matplotlibプロット Matplotlibマーカー Matplotlibライン Matplotlibラベル Matplotlibグリッド Matplotlibサブプロット Matplotlib散布図 Matplotlibバー Matplotlibヒストグラム Matplotlib円グラフ

機械学習

入門 平均中央値モード 標準偏差 パーセンタイル データ配信 正規データ分布 散布図 線形回帰 多項式回帰 重回帰 規模 トレーニング/テスト デシジョンツリー

Python MySQL

MySQLはじめに MySQLデータベースの作成 MySQLテーブルの作成 MySQL挿入 MySQL Select MySQL Where MySQL Order By MySQL削除 MySQLドロップテーブル MySQLアップデート MySQLの制限 MySQL参加

Python MongoDB

MongoDBはじめに MongoDBデータベースの作成 MongoDBCreateコレクション MongoDBインサート MongoDB検索 MongoDBクエリ MongoDBソート MongoDB削除 MongoDBドロップコレクション MongoDBアップデート MongoDBの制限

Pythonリファレンス

Pythonの概要 Python組み込み関数 Python文字列メソッド Pythonリストメソッド Python辞書メソッド Pythonタプルメソッド Pythonセットメソッド Pythonファイルメソッド Pythonキーワード Pythonの例外 Python用語集

モジュールリファレンス

ランダムモジュール リクエストモジュール 統計モジュール 数学モジュール cMathモジュール

Pythonハウツー

リストの重複を削除する 文字列を逆にする 2つの数字を追加する

Pythonの例

Pythonの例 Pythonコンパイラ Python演習 Pythonクイズ Python証明書

機械学習-重回帰


重回帰

重回帰は線形回帰に似ていますが、複数の独立した値があります。つまり、 2つ以上の変数に基づいて値を予測しようとします。

以下のデータセットを見てください。これには、自動車に関するいくつかの情報が含まれています。

車両 モデル 音量 重さ CO2
トヨタ アイゴ 1000 790 99
三菱 スペーススター 1200 1160 95
シュコダ シティゴ 1000 929 95
フィアット 500 900 865 90
ミニ クーパー 1500 1140 105
VW 上! 1000 929 105
シュコダ ファビア 1400 1109 90
メルセデス Aクラス 1500 1365 92
フォード フィエスタ 1500 1112 98
アウディ A1 1600 1150 99
ヒュンダイ I20 1100 980 99
鈴木 迅速 1300 990 101
フォード フィエスタ 1000 1112 99
ホンダ シビック 1600 1252 94
ヒュンダイ I30 1600 1326 97
オペル アストラ 1600 1330 97
BMW 1 1600 1365 99
マツダ 3 2200 1280 104
シュコダ 急速 1600 1119 104
フォード 集中 2000 1328 105
フォード モンデオ 1600 1584 94
オペル 記章 2000 1428 99
メルセデス Cクラス 2100 1365 99
シュコダ オクタビア 1600 1415 99
ボルボ S60 2000 1415 99
メルセデス CLA 1500 1465 102
アウディ A4 2000 1490 104
アウディ A6 2000 1725年 114
ボルボ V70 1600 1523 109
BMW 5 2000 1705 114
メルセデス Eクラス 2100 1605 115
ボルボ XC70 2000 1746年 117
フォード B-Max 1600 1235 104
BMW 2 1600 1390 108
オペル ザフィーラ 1600 1405 109
メルセデス SLK 2500 1395 120

エンジンのサイズに基づいて車のCO2排出量を予測できますが、重回帰を使用すると、車の重量など、より多くの変数を投入して、予測をより正確にすることができます。


それはどのように機能しますか?

Pythonには、作業を行うモジュールがあります。Pandasモジュールをインポートすることから始めます。

import pandas

PandasチュートリアルでPandasモジュールについて学びます

Pandasモジュールを使用すると、csvファイルを読み取ってDataFrameオブジェクトを返すことができます。

このファイルはテストのみを目的としており、 cars.csvからダウンロードできます。

df = pandas.read_csv("cars.csv")

次に、独立した値のリストを作成し、この変数を呼び出しますX

従属値を。という変数に入れますy

X = df[['Weight', 'Volume']]
y = df['CO2']

ヒント: 独立した値のリストには大文字のXを付け、従属値のリストには小文字のyを付けるのが一般的です。

sklearnモジュールのいくつかのメソッドを使用するため、そのモジュールもインポートする必要があります。

from sklearn import linear_model

sklearnモジュールから、このLinearRegression()メソッドを使用して線形回帰オブジェクトを作成します。

このオブジェクトにはfit()、独立値と従属値をパラメーターとして受け取り、関係を説明するデータを回帰オブジェクトに入力するというメソッドがあります。

regr = linear_model.LinearRegression()
regr.fit(X, y)

これで、車の重量と体積に基づいてCO2値を予測する準備ができた回帰オブジェクトができました。

#predict the CO2 emission of a car where the weight is 2300kg, and the volume is 1300cm3:
predictedCO2 = regr.predict([[2300, 1300]])

実際の例全体を参照してください。

import pandas
from sklearn import linear_model

df = pandas.read_csv("cars.csv")

X = df[['Weight', 'Volume']]
y = df['CO2']

regr = linear_model.LinearRegression()
regr.fit(X, y)

#predict the CO2 emission of a car where the weight is 2300kg, and the volume is 1300cm3:
predictedCO2 = regr.predict([[2300, 1300]])

print(predictedCO2)

結果:

[107.2087328]

エンジンが1.3リッターで重量が2300kgの車は、走行距離1kmあたり約107グラムのCO2を排出すると予測しています。



係数

係数は、未知の変数との関係を表す要素です。

例:xが変数の場合、 2xx2回です。xは未知の変数であり、数値2は係数です。

この場合、CO2に対する重量の係数値とCO2に対する体積を求めることができます。私たちが得た答えは、独立した値の1つを増減した場合に何が起こるかを示しています。

回帰オブジェクトの係数値を出力します。

import pandas
from sklearn import linear_model

df = pandas.read_csv("cars.csv")

X = df[['Weight', 'Volume']]
y = df['CO2']

regr = linear_model.LinearRegression()
regr.fit(X, y)

print(regr.coef_)

結果:

[0.00755095 0.00780526]

結果の説明

結果の配列は、重量と体積の係数値を表します。

重量:0.00755095
体積:0.00780526

これらの値は、重量が1kg増加すると、CO2排出量が0.00755095g増加することを示しています。

そしてエンジン大きさ(体積)を1 CMによって増加した場合に3、0.00780526グラムによってCO2排出量が増加します。

それは公正な推測だと思いますが、テストしてみましょう。

エンジン1300cm3の車の重量が2300kgだとすると、CO2排出量は約107gになると予測しています。

1000kgで体重を増やすとどうなりますか?

前の例をコピーしますが、重みを2300から3300に変更します。

import pandas
from sklearn import linear_model

df = pandas.read_csv("cars.csv")

X = df[['Weight', 'Volume']]
y = df['CO2']

regr = linear_model.LinearRegression()
regr.fit(X, y)

predictedCO2 = regr.predict([[3300, 1300]])

print(predictedCO2)

結果:

[114.75968007]

エンジンが1.3リッターで重量が3300kgの車は、走行距離1kmあたり約115グラムのCO2を排出すると予測しています。

これは、0.00755095の係数が正しいことを示しています。

107.2087328 +(1000 * 0.00755095)= 114.75968