機器學習之linear_model (線性迴歸算法模型)

1.matplotlib

首先看一下這個靜態圖繪製模塊python

  • 靜態圖形處理算法

  • 數據分析三劍客數組

    • Numpy : 主要爲了給pandas提供數據源
    • pandas : 更重要的數據結構
    • matplotlib : 靜態圖形處理

海濱城市溫度分析案例數據結構

  1. 導包app

    # 導包
    import numpy as np
    import pandas as pd
    from pandas import Series,DataFrame
    
    import matplotlib.pyplot as plt
    
    from pylab import mpl
    mpl.rcParams['font.sans-serif'] = ['FangSong'] # 指定默認字體
    mpl.rcParams['axes.unicode_minus'] = False # 解決保存圖像是負號'-'顯示爲方塊的問題
  2. 導入數據(各個海濱城的數據)字體

    # 導入數據(各個海濱城市數據)
    
    ferrara1 = pd.read_csv('./ferrara_150715.csv')
    ferrara2 = pd.read_csv('./ferrara_250715.csv')
    ferrara3 = pd.read_csv('./ferrara_270615.csv')
    ferrara=pd.concat([ferrara1,ferrara1,ferrara1],ignore_index=True)
    
    torino1 = pd.read_csv('./torino_150715.csv')
    torino2 = pd.read_csv('./torino_250715.csv')
    torino3 = pd.read_csv('./torino_270615.csv')
    torino = pd.concat([torino1,torino2,torino3],ignore_index=True) 
    ...

  1. 去除沒用的列spa

    city_list = [faenza,cesena,piacenza,bologna,asti,ravenna,milano,mantova,torino,ferrara]
    for city in city_list:
        city.drop(labels='Unnamed: 0',axis=1,inplace=True)
  2. 構造數據,顯示最高溫度與離海遠近的關係3d

    max_temp = []   
    dist_list = []
    for city in city_list:
        temp = city["temp"].max()
        max_temp.append(temp)
        dist = city['dist'][0]
        dist_list.append(dist)
    
    plt.scatter(dist_list,max_temp)   # 傳入兩個列表
    plt.xlabel("距離")  # x
    plt.xlabel("最高溫度") # y
    plt.title("最高溫度和距離之間的關係") # 標題

2.建立算法模型

2.1 線性迴歸算法模型

  • 多用於預測code

  • sklearn.linear_model對象

    • 建立一個溫度模型,讓其能夠根據一個距離預測出該距離對應城市的最高溫度.
    #樣本數據的提取
    feature = np.array(dist_list) # 數組形式的特徵數據
    target = np.array(max_temp) # 數組形式的目標數據
    
    # 線性迴歸算法模型 y = ax + b  --> 經過訓練求出最匹配的a和b
    from sklearn.linear_model import LinearRegression
    linear = LinearRegression()  # 實例化算法模型
    # 訓練模型
    linear.fit(feature.reshape(-1,1),target) # 特徵數據必須是二維的 !!!
    # 基於訓練好的模型對象實現預測功能
    linear.predict([[226],[333]])
    • 繪製關係圖

      # 使用多個點繪製最高溫度和距離之間的關係
      x = np.linspace(0,400,num=100)
      y = linear.predict(x.reshape(-1,1))
      plt.scatter(dist_list,max_temp)
      plt.scatter(x,y)
      plt.xlabel('距離')
      plt.ylabel('最高溫度')
      plt.title('最高溫度和距離直接的關係')

相關文章
相關標籤/搜索