【Python】数量化1類(Pandas、Scikit-learn)

Pythonモジュール「Pandas」「Scikit-learn」で数量化1類を実装方法をソースコード付きでまとめました。

数量化1類

数量化1類とは、説明変数が「定性データ」の場合の重回帰分析です。

数量化一類の詳細はこちら
参考 【数量化1類とは】目的変数と説明変数【Python/Pandas】カテゴリ変数をダミー変数に変換

今回は、Pythonモジュール「Pandas」でカテゴリ変数をダミー変数に変換します。
そして、「Scikit-learn」で重回帰分析を行いました。

サンプルコード(Python3 + Pandas)

サンプルプログラムのソースコードです。

# -*- coding: utf-8 -*-
import pandas as pd
from sklearn import linear_model

# CSVァイルを読み込んでデータフレームに格納
df = pd.read_csv("input.csv")

# 説明変数をダミー変数に変換
x = pd.get_dummies(df[['性別', '文理']])

# 目的変数:満足度
y = df['満足度'].as_matrix()

# 予測モデルを作成(重回帰)
clf = linear_model.LinearRegression()
clf.fit(x, y)

# 回帰係数と切片の抽出
a = clf.coef_
b = clf.intercept_  

# 回帰係数
print("回帰係数:", a) # 回帰係数: [-1.  1. -1.  1.]
print("切片:", b)  # 切片: 3.0
print("決定係数:", clf.score(x, y)) # 決定係数: 0.8

入力データ

input.csv

満足度,性別,文理
5,男,理系
3,女,理系
4,男,文系
1,女,文系
2,男,文系
関連ページ
参考 【Pandas入門】データ分析のサンプル集【Scikit-learn】機械学習入門・使い方Python入門 基礎文法とサンプル集
関連記事