くぴんのブログ

くぴんのブログ

PR

プロフィール

くぴん74

くぴん74

カレンダー

カテゴリ

お気に入りブログ

楽天ラッキーくじ更… New! じゃっかすさん

2025年11月のまとめ。 New! みきまるファンドさん

DOW 47427.12 +314.6… どらりん0206さん

まさかの Maryu21さん

自分を愛することは… まりあのじいじさん

キーワードサーチ

▼キーワード検索

2016年02月21日
XML
カテゴリ: 本の紹介
第1部 しくみと概要を学ぼう!
特集1 機械学習を使いたい人のための入門講座
特集2 機械学習の基礎知識
特集3 ビジネスに導入する機械学習
特集4 深層学習最前線

第2部 手を動かして学ぼう!
特集1 機械学習ソフトウェアの外観
特集2 Pythonによる機械学習
特集3 推薦システム入門

特集5 Jubatusによる異常検知

↓ぼくにとってのポイント

Pythonによる機械学習のscikit-learn入門から

線形回帰(linear regression)、ロジスティック回帰、サポートベクターマシン(SVM)、KMeansによるクラスタリングがコードとともに紹介されている。

〇線形回帰(linear regression)

# coding: utf-8
import numpy as np
import matplotlib.pyplot as plt
from sklearn import linear_model, datasets

np.random.seed(0)
regdata=datasets.make_regression(100,1,noise=20.0)


lin.fit(regdata[0],regdata[1])
print("coef and intercept :",lin.coef_,lin.intercept_)
print("score :", lin.score(regdata[0],regdata[1]))
xr=[-2.5,2.5]
plt.plot(xr,lin.coef_*xr+lin.intercept_)


plt.show()

↓結果
('coef and intercept :', array([ 42.85335573]), -1.6283636540614514)
('score :', 0.80333572865564484)

lireg.png

〇ロジスティック回帰

ロジスティック回帰は2値(0, 1など)をとる値に説明変数であてはめようとする手法。
以下は、あやめの測定値と種類(0または1)からあやめの傾向を学習し、測定値が与えられたときにあやめの種類が0か1を当てる。

# coding: utf-8
import sklearn.datasets as datasets
from sklearn.linear_model import LogisticRegression
from sklearn import cross_validation

iris=datasets.load_iris()

data=iris.data[iris.target !=2]
target=iris.target[iris.target !=2]

logi=LogisticRegression()
scores=cross_validation.cross_val_score(logi,data,target,cv=5)
print(scores)

↓結果
[ 1. 1. 1. 1. 1.]

〇サポートベクターマシン(SVM)

あやめのデータの分類を可視化。
svc.fit(data,iris.target)で学習し、
z=svc.predict(np.c_[x.ravel(),y.ravel()])で予測している。

# coding: utf-8
from sklearn import datasets
from sklearn import svm
from sklearn.decomposition import PCA
import numpy as np
import matplotlib.pyplot as plt

iris=datasets.load_iris()

pca=PCA(n_components=2)
data=pca.fit(iris.data).transform(iris.data)

datamax=data.max(axis=0)+1
datamin=data.min(axis=0)-1

n=200
x,y=np.meshgrid(np.linspace(datamin[0],datamax[0],n),
np.linspace(datamin[1],datamax[1],n))

svc=svm.SVC()
svc.fit(data,iris.target)
z=svc.predict(np.c_[x.ravel(),y.ravel()])

plt.contourf(
x,y,z.reshape(x.shape),levels=[-0.5,0.5,1.5,2.5],
colors=["r","g","b"])
for i,c in zip([0,1,2],["r","g","b"]):
d=data[iris.target==i]
plt.scatter(d[:,0],d[:,1],c=c)
plt.show()

↓結果
iris.png

〇KMeansによるクラスタリング

教師なし学習の例。
n_clusters=3で3つに分類。
kmeans.fit(x)で学習させる。

# coding: utf-8
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans

np.random.seed(0)
x=np.r_[np.random.randn(30,2)+[2,2],
np.random.randn(30,2)+[0,-2],
np.random.randn(30,2)+[-2,2]]

kmeans=KMeans(n_clusters=3)
kmeans.fit(x)
markers=["o","v","x"]
for i in range(3):
xx=x[kmeans.labels_==i]
plt.scatter(xx[:,0],xx[:,1],c="k",marker=markers[i])

plt.show()

↓結果
kmeans.png





にほんブログ村 サラリーマン日記ブログ 戦うサラリーマンへ
にほんブログ村





お気に入りの記事を「いいね!」で応援しよう

最終更新日  2016年02月21日 11時11分06秒
コメント(0) | コメントを書く
[本の紹介] カテゴリの最新記事


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

© Rakuten Group, Inc.
X
Design a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: