1
7

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 3 years have passed since last update.

AIデータ分析チートシート

Posted at

AIデータ分析初心者の私が、データ分析の工程ごとに使えるメソッドや属性を簡単に確認できるように備忘録として残します。

#目次
1.インポート
2.データの読み込み
3.データ概要の確認
4.データ処理
5.モデル学習と推論
6.モデル評価
7.可視化

#1. インポート
##決定木をインポート

from sklearn.tree import DecisionTreeClassifier
from sklearn.tree import DecisionTreeRegressor

##ロジスティック回帰をインポート

from sklearn.linear_model import LogisticRegression

##主成分分析PCAをインポート

from sklearn.decomposition import PCA

##ランダムフォレスト回帰のインポート

from sklearn.ensemble import RandomForestRegressor as RFR

##SVMのインポート

from sklearn.svm import SVC
from sklearn.svm import LinearSVC

##K近傍法のインポート

from sklearn.neighbors import KNeighborsClassifier

##K平均法のインポート

from sklearn.cluster import KMeans

##勾配ブースティングのインポート

from sklearn.ensemble import GradientBoostingClassifier

##確率的勾配降下法

from sklearn.linear_model import SGDClassifier

##ナイーブベイズのインポート

from sklearn.naive_bayes import GaussianNB

##XGBoostのインポート

import xgboost as xgb

##ラベルエンコーダーのインポート

from sklearn.preprocessing import LabelEncoder

##preprocessingのインポート

from sklearn import preprocessing

##train_test_splitのインポート

from sklearn.cross_validation import train_test_split

##モデル評価のためのMSEのインポート

from sklearn.metrics import mean_squared_error

##モデル評価のためのRMSEのインポート

from sklearn.metrics import mean_squared_error

##モデル評価のためのR2決定係数のインポート

from sklearn.metrics import r2_score

##モデル評価のためのaccuracy_scoreをインポート

from sklearn.metrics import accuracy_score

##交差検証スコアのインポート

from sklearn.model_selection import cross_val_score

##ボストン近郊の住宅情報に関するデータセットのインポート

from sklearn.datasets import load_boston

##アイリスに関するデータセットのインポート

from sklearn.datasets import load_iris

##seabornのインポート

import seaborn as sns

##missingnoのインポート

import missingno as msno

#2. データの読み込み
##学習データの読み込み

train_data = pd.read_csv('train.csv')

##テストデータの読み込み

test_data = pd.read_csv('test.csv')

##学習用とテスト用データに分割

(x_train, x_test, y_train, y_test) = train_test_split(x, y, test_size = 0.2)

#3. データ概要の確認
##平均・標準偏差等の各列の要約統計量を取得

data.describe()

##dfとseriesの先頭・末尾の行を返す

data.head()
data.tail()

##dfの各列間の相関係数を算出

data.corr()

##seriesのユニークな要素の値のリストを返す

data['hoge'].unique()

##行か列にnanが含まれているかの確認
any()をisnull()の結果に対して適用することで、行・列ごとに欠損値NaNをひとつでも含むか判定

data.isnull().any()

##dfの各列のデータ型を取得

data.dtypes

##dfのカラム一覧を取得
リスト化→list(data.columns)

data.columns

##missingnoを使ったdfの欠損値の可視化

msno.matrix(df)
msno.bar(df)
msno.heatmap(df)

#4. データ処理
##dfに新たな列を追加したり既存の列に新たな値を代入
A = 0の場合、

data.assign(A = 0)

##dfの行結合

all_data = pd.concat([train_data, test_data])

##Seriesのインデックスと値の取得

df['hoge'].value_counts().index
df['hoge'].value_counts().values

##dfのコピー

data_copy = data.copy()

##dfの文字列のダミー化

data.hoge = data.hoge.replace({'yes': 1, 'no': 0})

##dfのカラムのデータをダミー変数に変換

pd.get_dummies(df['hoge'])

##dfの不要なカラムの削除
axis = 0は行、axis = 1は列を指定
inplaceをTrueにすることで、元のdfが変更される

df.drop(['hoge'], axis = 1, inplace = True)

##カラム名の削除

feature_cols = list(set(data.columns) - set(['hoge']))
features = data[feature_cols]

##欠損値の置き換え
0に置き換える場合、

df.fillna(0)

##標準化

scaler = preprocessing.StandardScaler().fit(x_train)
x_train_scaled = scaler.transform(x_train)
x_test_scaled = scaler.transform(x_test)

##ラベルの数値化
LabelEncoder()→宣言
le.fit()→ラベルとラベルIDの対応づけ
le.transform()→変換

for i in range(train.shape[1]):
    if train.iloc[:, i].dtypes == object:
        le = LabelEncoder()
        le.fit(train.iloc[:, i].values + test.iloc[:, i].values)
        train.iloc[:, i] = le.transform(train.iloc[:, i].values)
        test.iloc[:, i] = le.transform(test.iloc[:, i].values)

#5. モデル学習と推論
##ランダムフォレストによる学習と回帰分析

rfr = RFR()
rfr.fit(x_train, y_train)
y_test_pred = rfr.predict(x_test)
rfr.score(y_test, y_test_pred)

##決定木の学習と推論

clf = DecisionTreeClassifier()
(clf = DecisionTreeRegressor())
clf = clf.fit(x_train, y_train)
pred = clf.predict(x_train)
plot_tree(clf)

##ロジスティック回帰の学習と推論

clf = LogisticRegression()
clf.fit(x_train, y_train)
clf.predict(x_test)

##SVMの学習と推論

svc = SVC()
(svc = LinearSVC())
svc.fit(x_train, y_train)
pred = svc.predict(x_test)

##主成分分析の学習と推論

pca = PCA(n_components = 3)
pca.fit_transform(x_train)
pca.fit(x_test)

##K近傍法の学習と推論

knn = KNeighborsClassifier()
knn.fit(x_train, y_train)
pred = knn.predict(x_test)

##K平均法の学習と推論

km = KMeans(n_clusters=3)
result = km.fit(x_data)
x = x_data[:,0]
y = x_data[:,1]
X = result.cluster_centers_[:,0]
Y = result.cluster_centers_[:,1]

##勾配ブースティングの学習と推論

gbk = GradientBoostingClassifier()
gbk.fit(x_train, y_train)
pred = gbk.predict(x_test)

##確率的勾配降下法の学習と推論

sgd = SGDClassifier()
sgd.fit(x_train, y_train)
pred = sgd.predict(x_test)

##ナイーブベイズの学習と推論
正規分布を仮定したベイズ分類

clf = GaussianNB()
clf.fit(x_train, y_train)
clf.predict(x_test)

##XGBoostの学習と推論

xgb = xgb.XGBRegressor()
xgb.fit(x_train, y_train)
y_train_pred = xgb.predict(x_train)
y_test_pred = xgb.predict(x_test)

#6. モデル評価
##MSE(Mean Squared Error)

scores = mean_squared_error(y, y_pred)

##RMSE(Root Mean Squared Error)

scores = sqrt(mean_squared_error(y, y_pred))

##R2決定係数

scores = r2_score(y, y_pred)

##モデル評価

accuracy_score(y, y_pred)

##交差検証スコア

scores = cross_val_score(clf, x, y, cv = 5)

#7. 可視化
##折れ線グラフ

plt.plot(df['hoge'])

##棒グラフ

plt.bar(df['hoge'])

##散布図

plt.scatter(df['hoge'], df['hogehoge'])

##ヒストグラム

plt.hist(df['hoge'], label = 'hoge')

##円グラフ

values = df['hoge'].value_counts().values
label = df['hoge'].value_counts().index
plt.pie(values, labels = label)

##箱ひげ図

plt.boxplot(df['hoge'])

##ラベルをつける

plt.xlabel('x_title')
plt.ylabel('y_title')

##グリッドつける

plt.grid()

##描画

plt.show()
1
7
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
1
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?