pythonの下部にあるロジスティック回帰

[ 参照リンク:Pythonのロジックゲート](https://www.imangodoc.com/221.html)

Pythonの基礎となる論理アルゴリズム:回帰:回帰は統計の重要な概念であり、その本来の目的は、以前のデータに基づいて正確な出力値を予測することです。ロジスティック回帰は、「機械学習」コースの3番目のアルゴリズムであり、現在、分類の問題を解決するために最も広く使用されている学習アルゴリズムです。線形回帰アルゴリズムと同様に、これも監視対象の学習アルゴリズムです。例:ニュース分類、遺伝子配列、市場分割などは、ロジスティック回帰を使用して、特性に従って分割されます。最終的な予測結果の出力は、ポジティブクラス(1)、ネガティブクラス(0)です。

ロジスティック回帰モデルは「S」字型の関数です。

コスト関数:コスト関数-エラーの2乗の合計-非凸関数-ローカル最小点。勾配降下

import numpy as np

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei']

plt.rcParams['axes.unicode_minus']=False

train_data=np.loadtxt(r'LoR_linear.txt',delimiter=',')

test_data=np.loadtxt(r'LoR_nonlinear.txt',delimiter=',')

train_X,train_y=train_data[:,:-1],train_data[:,-1]

test_X,test_y=test_data[:,:-1],test_data[:,-1]

def preProess(X,y):

#機能ズーム

X -=np.mean(X,axis=0)

X /=np.std(X,axis=0,ddof=1)

X=np.c_[np.ones(len(X)),X]

y=np.c_[y]

return X,y

train_X,train_y=preProess(train_X,train_y)

test_X,test_y=preProess(test_X,test_y)

def g(x):

return 1/(1+np.exp(-x))

x=np.linspace(-10,10,500)

y=g(x)

plt.plot(x,y)

plt.show()

def model(X,theta):

z=np.dot(X,theta)

h=g(z)

return h

def costFunc(h,y):

m=len(y)

J=-(1.0/m)np.sum(ynp.log(h)+(1-y)*np.log(1-h))

return J

def gradDesc(X,y,max_iter=15000,alpha=0.1):

m,n=X.shape

theta=np.zeros((n,1))

J_history=np.zeros(max_iter)

for i in range(max_iter):

h=model(X,theta)

J_history[i]=costFunc(h,y)

deltaTheta = (1.0/m)*np.dot(X.T,h-y)

theta -= deltaTheta*alpha

return J_history,theta

def score(h,y):

m=len(y)

count=0

for i in range(m):

h[i]=np.where(h[i]>=0.5,1,0)

if h[i]==y[i]:

count+=1

return count/m

予測結果関数、結果は0または1のいずれかです

def predict(h):

y_pre=[1 if i>=0.5 else 0 for i in h]

return y_pre

print(train_X.shape,train_y.shape)

J_history,theta=gradDesc(train_X,train_y)

print(theta)

plt.title( "コスト関数")

plt.plot(J_history)

plt.show()

train_h=model(train_X,theta)

test_h=model(test_X,theta)

print(train_h,test_h)

def showDivide(X,theta,y,title):

plt.title(title)

plt.scatter(X [y [:、0] == 0,1]、X [y [:、0] == 0,2]、label = "negative sample")

plt.scatter(X [y [:、0] == 1,1]、X [y [:、0] == 1,2]、label = "ポジティブサンプル")

min_x1,max_x1=np.min(X),np.max(X)

min_x2,max_x2=-(theta[0]+theta[1]*min_x1)/theta[2],-(theta[0]+theta[1]*max_x1)/theta[2]

plt.plot([min_x1,max_x1],[min_x2,max_x2])

plt.legend()

plt.show()

showDivide(train_X、theta、train_y、 'トレーニングセット')

showDivide(test_X、theta、test_y、 'テストセットセット')

train_y1=predict(train_h)

print( '予測結果は次のとおりです:'、train_y1)

Recommended Posts

pythonの下部にあるロジスティック回帰
27歳でパイソンを学ぶのはどうですか?
Pythonの基盤を統合する(4)
Python(7)の基盤を統合する
Python(6)の基盤を統合する
Pythonデータサイエンス:ロジスティック回帰
Python(5)の基盤を統合する
Pythonの基盤を統合する(3)
Pythonは中国語の4つの車輪を処理します
地主取引のPythonシミュレーション
Pythonの用途は何ですか
Python文字列プーリングの前提
Python3.8の新機能の秘密
Pythonの父がMicrosoftに加わる
python accesshdfsの操作
pythonでのタプルの使用法
pythonを実行するメソッドを終了します
pythonでのrbの意味を理解する
Pythonはスタックの構造を実装できますか?
pythonインタラクティブモードの基本を学ぶ
pythonの必須パラメーターは何ですか
Python3クローラーでのAjaxの使用
PythonはTowerofHanoiゲームを解決します
pythonの複数のバージョンの競合を解決します
python変数の範囲は何ですか
Pythonは分数シーケンスの合計を実装します
Pythonの基礎を学ぶ2日間
pythonのid関数は何ですか
python3のピップパスはどこにありますか
Python言語の本質:Itertoolsライブラリ
python言語の利点は何ですか
pythonインスタンス化オブジェクトの特定のメソッド
python3はマスク描画の機能を実現します
python開発の見通しは何ですか
pythonの関数本体は何ですか
pythonインポートライブラリの特定の方法
pythonの複数のバージョンの競合を解決します
pythonでのadbの機能は何ですか
Python super()メソッドの原理の詳細な説明
javaとpythonの構文の違い
Python3.9の7つの機能
Pythonは学生管理システムの開発を実現します
PythonはDoudizhuでカードのシャッフルを実装します
pythonでのリストの意味と使用法
起動エラーを実行しているpythonの問題を解決します
python辞書の値を変更できますか?
Pythonはスネークゲームのソースコードを実装しています
まず、Ubuntu17.10の新機能を見てください
Pythondecimalモジュールの使用法の詳細な説明
2.1 Pythonインタープリター(pythonインタープリター)
ubuntuでpythonをアンインストールした結果、非常に
Pythonは釣りマスターのゲーム実装を書きます
[898] pythonは2つのリストの共通部分を取得します|ユニオン|違い
エンタープライズ言語に対するpythonの利点は何ですか
Python2とPython3の違いの簡単な要約
pythonのコンパイルとsslのインストールの問題を解決します
Pythonインターフェース開発の実装手順の詳細な説明
pythonはどのように辞書のキーを呼び出しますか
Pythonはスキンのフルセットをクロールします
Pythonでのパッケージの導入を理解する方法
pythonに基づいて凸型船体の問題を解決します