機械は十大アルゴリズムのシリーズを勉強します.


このシリーズのブログはよくあるマシン学習アルゴリズムを整理しました.ほとんどのデータ問題はそれらを通じて解決できます.
1.リニア復帰(Linear Regression)
2.論理回帰(Logistic Regression)
3.決定ツリー(Decision Tree)
4.サポートベクトルマシン(SVM)
5.シンプルなベインズ(Naive Bayes)
6.K近接アルゴリズム(KNN)
7.K-平均アルゴリズム(K-means)
8.ランダム森林(Random Forest)
9.次元低減アルゴリズム(Dimensionality Reduction Algorithms)
10.Graadient BoostとAdabootアルゴリズム
一次回帰
まず、回帰とは何かを説明します.いくつかのデータ点があると仮定して,これらの点を直線でフィッティングし,このフィッティング過程を回帰と呼ぶ.線形回帰は、連続変数を利用して実際の数値(例えば、住宅価格、呼び出し回数、売上高など)を推定するものである.線形回帰アルゴリズムにより自己変数と変数間の最適な線形関係を見出し,最適な直線を図形的に決定できた.この一番いい直線は回帰線です.この回帰関係はY=aX+bで表してもいいです.この部分は別のブログで詳しく紹介されています.Linear Regression/線形回帰と正則化(Andrew Ngマシン学習1)
論理回帰
論理回帰は実際には分類アルゴリズムであり、回帰アルゴリズムではない.通常は、既知の引数を用いて、離散型因数変数の値を予測する(バイナリ値0/1のような、はい/いいえ、本当/偽).簡単に言えば、一つの論理関数(logit fuction)をフィッティングすることによって一つのイベントの発生確率を予測することである.したがって、その予測は確率値であり、当然、その出力値は0から1の間にあるべきである.あなたの友達が問題に答えてくれと言ったら.可能な結果は二つしかありません.正解しましたか?正解していません.あなたの得意なテーマ分野を研究するために、いろいろな分野のテーマを作りました.この研究の結果はこうかもしれません.十年生の三角関数の問題なら、70%の可能性があります.でも、5年生の歴史問題なら、30%ぐらいの確率でできます.論理回帰はあなたにこのような確率の結果をあげます.Logistic回帰簡単分析
利点:計算コストが高くないので、欠点が分かりやすく、フィッティングが不足しやすく、分類精度が高くないかもしれません.データタイプ:数値型と公称型データ
論理回帰アルゴリズムコード:
def loadDataSet():  
    dataMat = []; labelMat = []  
    fr = open('testSet.txt')  
    for line in fr.readlines():  
        lineArr = line.strip().split()  
        dataMat.append([1.0, float(lineArr[0]), float(lineArr[1])])  
        labelMat.append(int(lineArr[2]))  
    return dataMat,labelMat  
# loadDataset         testSet.txt     。         X1 X2,              。
def sigmoid(inX):  
    return 1.0/(1+exp(-inX))

def gradAscent(dataMatIn, classLabels):  
    dataMatrix = mat(dataMatIn)             #convert to NumPy matrix 
    labelMat = mat(classLabels).transpose() #convert to NumPy matrix 

    m,n = shape(dataMatrix)  
    alpha = 0.001  
    maxCycles = 500  
    weights = ones((n,1))  

    for k in range(maxCycles):              #heavy on matrix operations 
        h = sigmoid(dataMatrix*weights)     #matrix mult 
        error = (labelMat - h)              #vector subtraction 
        weights = weights + alpha * dataMatrix.transpose()* error #matrix mult 
    return weights
Result

[[ 4.12414349] [ 0.48007329] [-0.6168482 ]]
その中で関連している最適化理論は詳しくは別のブログをご覧ください.機械学習によくある問題です.いくつかの勾配降下法
おすすめ参考文献
機械学習における論理回帰モデルの概要http://blog.jobbole.com/88521/
マシン学習アルゴリズムとPython実践の(7)ロジック回帰(Logistic Regression)http://blog.csdn.net/zouxy09/article/details/20319673
機械学習シリーズ(1)_論理回帰の初期段階http://blog.csdn.net/han_xiaoyang/articale/detail/4912319