日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

机器学习第5天:逻辑回归

發布時間:2025/4/5 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习第5天:逻辑回归 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、環境
  • 二、具體實現步驟
    • 第1步:數據預處理
      • 導入庫
      • 導入數據
      • 將數據集分成訓練集和測試集
    • 第2步:邏輯回歸模型
    • 第3步:預測結果
    • 第4步:評估預測結果
      • 可視化
  • 三、可視化結果展示
  • 四、邏輯回歸是什么
  • 五、利用matplotlib實現可視化
    • 1. 函數講解
    • 2. 關于X_set[y_set==j,0]

一、環境

  • Python3.6.5
  • 編譯器:jupyter notebook

二、具體實現步驟

第1步:數據預處理

導入庫

import numpy as np import matplotlib.pyplot as plt import pandas as pd

導入數據

dataset = pd.read_csv('Social_Network_Ads.csv') X = dataset.iloc[ : , [2,3]].values Y = dataset.iloc[ : ,4].values

將數據集分成訓練集和測試集

from sklearn.model_selection import train_test_split X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.25, random_state=0)

第2步:邏輯回歸模型

from sklearn.linear_model import LogisticRegression classifier = LogisticRegression() classifier.fit(X_train, Y_train)

第3步:預測結果

Y_pred = classifier.predict(X_test)

第4步:評估預測結果

可視化

from matplotlib.colors import ListedColormap #1.訓練集可視化 X_set,y_set=X_train,Y_trainx = np.arange(start=X_set[:,0].min()-1, stop=X_set[:, 0].max()+1, step=0.01) y = np.arange(start=X_set[:,1].min()-1, stop=X_set[:,1].max()+1, step=0.01) #把x,y綁定為網格的形式 X1,X2=np. meshgrid(x,y)plt.contourf(X1, X2, classifier.predict(np.array([X1.ravel(),X2.ravel()]).T).reshape(X1.shape),alpha = 0.75, cmap = ListedColormap(('red', 'green'))) plt.xlim(X1.min(),X1.max()) plt.ylim(X2.min(),X2.max()) for i,j in enumerate(np.unique(y_set)):plt.scatter(X_set[y_set==j,0],X_set[y_set==j,1],c = ListedColormap(('red', 'green'))(i), label=j)plt. title(' LOGISTIC(Training set)') plt. xlabel(' Age') plt. ylabel(' Estimated Salary') plt. legend() plt. show()#2.測試集可視化 X_set,y_set=X_test,Y_testx = np.arange(start=X_set[:,0].min()-1, stop=X_set[:, 0].max()+1, step=0.01) y = np.arange(start=X_set[:,1].min()-1, stop=X_set[:,1].max()+1, step=0.01) #把x,y綁定為網格的形式 X1,X2=np. meshgrid(x,y)plt.contourf(X1, X2, classifier.predict(np.array([X1.ravel(),X2.ravel()]).T).reshape(X1.shape),alpha = 0.75, cmap = ListedColormap(('red', 'green'))) plt.xlim(X1.min(),X1.max()) plt.ylim(X2.min(),X2.max()) for i,j in enumerate(np.unique(y_set)):plt.scatter(X_set[y_set==j,0],X_set[y_set==j,1],c = ListedColormap(('red', 'green'))(i), label=j)plt. title(' LOGISTIC(Test set)') plt. xlabel(' Age') plt. ylabel(' Estimated Salary') plt. legend() plt. show()

三、可視化結果展示

四、邏輯回歸是什么

簡單來說, 邏輯回歸(Logistic Regression)是一種用于解決二分類(0 or 1)問題的機器學習方法,用于估計某種事物的可能性。比如某用戶購買某商品的可能性,某病人患有某種疾病的可能性,以及某廣告被用戶點擊的可能性等。

邏輯回歸是為了解決分類問題,根據一些已知的訓練集訓練好模型,再對新的數據進行預測屬于哪個類。

邏輯回歸(Logistic Regression)與線性回歸(Linear Regression)都是一種廣義線性模型(generalized linear model)。邏輯回歸假設因變量 y 服從伯努利分布,而線性回歸假設因變量 y 服從高斯分布。(這部分暫時了解了即可)

這篇博客簡單介紹一下邏輯回歸是個什么東西,下一篇博客將展開對邏輯回歸的具體介紹。

五、利用matplotlib實現可視化

1. 函數講解

(1) np.arange(): arange([start,] stop[, step,], dtype=None)根據start與stop指定的范圍以及step設定的步長,生成一個 ndarray可迭代對象。

(2) .ravel(): 將多維數組降為一維數組。

(3) .reshape(): A.reshape(X1.shape)將A的類型重塑為X1的shape。

(4) T: 實現數組轉置和軸對換。例如:

arr = np.arange(15).reshape(3,5) """ 輸出: array([[ 0, 1, 2, 3, 4],[ 5, 6, 7, 8, 9],[10, 11, 12, 13, 14]]) """ arr.T """ 輸出: array([[ 0, 5, 10],[ 1, 6, 11],[ 2, 7, 12],[ 3, 8, 13],[ 4, 9, 14]]) """

(5).meshgrid(): meshgrid函數用兩個坐標軸上的點在平面上畫網格。

(6).contourf(): 用來畫紅綠兩種結果的分界線, classifier.predict(np.array([X1.ravel(),X2.ravel()]).T).reshape(X1.shape),這個是利用邏輯回歸模型預測分界線。

(7)xlim: plt.xlim設置x坐標軸范圍。

(8)ylim: plt.ylim設置y坐標軸范圍。

(9)unque(): 是一個去重函數。

(10)enumerate: 用于將一個可遍歷的數據對象(如列表、元組或字符串)組合為一個索引序列,同時列出數據和數據下標,一般用在 for 循環當中。

今天先了解一下利用matplotlib實現可視化,明天將對matplotlib進行詳細介紹。

2. 關于X_set[y_set==j,0]

for i,j in enumerate(np.unique(y_set)):plt.scatter(X_set[y_set==j,0],X_set[y_set==j,1],c = ListedColormap(('red', 'green'))(i), label=j)

關于這個點小編也是半懂,簡單談一下我的理解。y_set == j的結果是一個布爾值這個是肯定的,當y_set == j的結果為False時,plt.scatter語句不執行;當y_set == j的結果為True時,plt.scatter語句執行,X_set[y_set==j,0]的作用效果相當于X_set[ : ,0]。

附上老外的看法:What does X_set[y_set == j, 0] mean?

有不同見解的童鞋可以在下方留言,我們一起交流。

總結

以上是生活随笔為你收集整理的机器学习第5天:逻辑回归的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。