scikit-learn

TB01 scikit-learnについて

この記事は約3分で読めます。

scikit-learn(サイキット・ラーン)についての覚書です。

scikit-learn:データ分析ツール
機械学習のツールとしても活用されてるようで、古株だそうです。
開発元のサイトは例題など充実しています。

実施確認

最小二乗法の処理を行ってみました。
アレニウスの式を題材にしてみました。
実験データ(架空)を変換してcsvとしてします。

csvデータを用いて、最小二乗法を用いて線形式を作成します。
線形回帰によって回帰係数と切片を取得します。

scikit-learnによる線形回帰

■data2.csv

"1/T","LNk"
0.001666667,-7.60090246
0.001538462,-6.502290171
0.001428571,-5.035953102
0.001333333,-3.506557897

■pythonファイル

linear_modelを使用します。

# -*- coding: utf-8 -*-

import pandas as pd
# import matplotlib.pyplot as plt
# import numpy as np
from sklearn import datasets, linear_model
# from sklearn.metrics import mean_squared_error, r2_score
import os

# データ読み込み
data = pd.read_csv(os.path.dirname(__file__) + '\data2.csv', sep=',')

# 説明変数xに "1/T"のデータを使用
diabetes_X_train = data.loc[:, ['1/T']].values

# 目的変数yに "LNk"のデータを使用
diabetes_y_train = data['LNk'].values


# Create linear regression object
regr = linear_model.LinearRegression()

# Train the model using the training sets
regr.fit(diabetes_X_train, diabetes_y_train)


# 回帰係数、切片の取得
[a] = regr.coef_
b = regr.intercept_  

# パラメータの表示
print("回帰係数:", a)
print("切片:", b) 
print("決定係数:", regr.score(diabetes_X_train, diabetes_y_train))

出力

回帰係数: -12275.183258188401
切片: 12.650179988164428
決定係数: 0.980912593337878

コメント

Translate »
タイトルとURLをコピーしました