ラベル 機械学習 の投稿を表示しています。 すべての投稿を表示
ラベル 機械学習 の投稿を表示しています。 すべての投稿を表示

2015年12月30日水曜日

python scikit-learnでの線形回帰

データサイエンティスト養成読本 機械学習入門編
http://gihyo.jp/book/2015/978-4-7741-7631-4
[scikit-learn 入門]リスト1のコードめも

list1.py (python scikit-learnでの線形回帰)
----------------------------------------------
# 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.00)
# make_regression の第1引数:サンプル数, 第2引数:フィーチャー数(入力データの次元), 第3引数:ノイズの大きさ

# 学習を用いてモデルパラメータを表示
lin = linear_model.LinearRegression() # 線形回帰のインスタンス生成
lin.fit ( regdata[0], regdata[1] )   # フィッティングの計算
print ( "coef and intercept :", lin.coef_, lin.intercept_ )  # 回帰直線を y =ax + b とすると lin.coef_:係>数a, lin.intercept_:切片b
print ( "score :", lin.score(regdata[0],regdata[1]) ) # どのくらいうまくあてはまっているかスコア。値が大きいほど良い

# グラフを描画
xr = [-2.5, 2,5]
plt.plot (xr, lin.coef_ * xr + lin.intercept_)  # 回帰直線を描画
plt.scatter ( regdata[0], regdata[1])           # データ点を描画

plt.show()
----------------------------------------------
実行結果
$ python list1.py
('coef and intercept :', array([ 42.85335573]), -1.6283636540614475)
('score :', 0.80333572865564495)

2015年12月16日水曜日

最急降下法

Coursera Machine Learning
https://www.coursera.org/learn/machine-learning/

week1
Parameter Learning/Gradient Descent

最急降下法というのがようやく腑に落ちて納得できた。

最急降下法(Wikipedia)

Google TensorFlowの"GET STARTED"に出てくる
optimizer = tf.train.GradientDescentOptimizer(0.5)
という行のコードがなんとなくわかった。

Google TensorFlowは、まだまだ使い方がよくわからないけども。

機械学習の勉強

あれこれ、あれこれ機械学習を勉強しようとして、
どうも、CourseraのMachine Learningという無料講義がよさそう。
やってみることにした。

しかし、英語。。。

あと、Octave というソフトを入れてみたけど、今のところ使い方不明。

"(カクテルパーティー問題)"
2人が同時に話している2つのマイクの録音から、1人の音声を抽出する
この問題をOctaveを使って
[W,s,v]=svd((repmat(sum(x.*x,1),size(x,1),1).*x)*x`);
と言う一行のコードで解決できるとのこと。

だが、どうやって解決できるのだろう。
機械学習の講義の主題ではないようだか、かなり気になった。
これが簡単にできるならやってみたい。

。。。今日はここまで。