0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ライブラリのインポートから前処理

Last updated at Posted at 2022-08-04

1.ライブラリのインポート

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

2.csvファイルのインポート

pd.read_csv(csvファイル名) 
 csvファイルをインポート

.iloc[:,:-1] 
目的変数と説明変数に分ける。あらかじめ末尾に目的変数を持ってくると汎用性高い。

# csvファイルのインポート
dataset = pd.read_csv('hoge.csv')

#目的変数と説明変数に分ける
X = dataset.iloc[:, :-1].values
y = dataset.iloc[:, -1].values

3.欠損値処理

scikit-learnSimpleImputer を用いる。
[1:4] (1〜3列目)nullmean(平均値) で埋める。
.fit()で内部で演算する。
.transform()で実際に変換してくれる。

from sklearn.impute import SimpleImputer
imputer = SimpleImputer(missing_values=np.nan, strategy='mean')
imputer.fit(X[:, 1:4])
X[:, 1:4] = imputer.transform(X[: ,1:4])

4.カテゴリ変数処理

列をtransformすると同時に、OneHotEncodingを行う。
scikit-learnは本当に便利。

from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder
ct = ColumnTransformer(transformers=[('encoder', OneHotEncoder(), [0])], remainder='passthrough')
X = np.array(ct.fit_transform(X))

OneHotEncodingのように列を増やさず、
はい/いいえ とか True/Falseとか生/死とかを0/1で表現するには以下。

from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
y = le.fit_transform(y)

5.trainデータとtestデータに分ける

random_state を1にしない(0にする)と毎回分けられるデータが違ってしまう。

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3, random_state = 1)

6.フィーチャースケーリング

敷地面積住宅価格 のように単位が異なる(数字の大きさが異なる)変数の重みを
StandardScaler()で同じにするイメージ。

from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train[:, 4:] = sc.fit_transform(X_train[:, 4:])
X_test[:, 4:] = sc.transform(X_test[:, 4:])
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?