1. <track id="5jh9g"><ruby id="5jh9g"></ruby></track>

        深圳幻海軟件技術有限公司歡迎您!

        幻海優品

        Python 機器學習 數據歸一化

        1、數據歸一化

        當您的數據具有不同的值,甚至具有不同的度量單位時,可能很難比較它們。與米相比,公斤是多少?還是海拔比時間?

        這個問題的答案是擴展。我們可以將數據縮放為易于比較的新值。

        看看下表,它與我們在多元回歸一章中使用的數據集相同,但是這次,volume列包含的單位是升,而不是立方米(1.0而不是1000)。

        CarModelVolumeWeightCO2
        ToyotaAygo1.079099
        MitsubishiSpace Star1.2116095
        SkodaCitigo1.092995
        Fiat5000.986590
        MiniCooper1.51140105
        VWUp!1.0929105
        SkodaFabia1.4110990
        MercedesA-Class1.5136592
        FordFiesta1.5111298
        AudiA11.6115099
        HyundaiI201.198099
        SuzukiSwift1.3990101
        FordFiesta1.0111299
        HondaCivic1.6125294
        HundaiI301.6132697
        OpelAstra1.6133097
        BMW11.6136599
        Mazda32.21280104
        SkodaRapid1.61119104
        FordFocus2.01328105
        FordMondeo1.6158494
        OpelInsignia2.0142899
        MercedesC-Class2.1136599
        SkodaOctavia1.6141599
        VolvoS602.0141599
        MercedesCLA1.51465102
        AudiA42.01490104
        AudiA62.01725114
        VolvoV701.61523109
        BMW52.01705114
        MercedesE-Class2.11605115
        VolvoXC702.01746117
        FordB-Max1.61235104
        BMW21.61390108
        OpelZafira1.61405109
        MercedesSLK2.51395120

        很難將體積1.0與權重790進行比較,但是如果將它們都縮放為可比較的值,我們可以很容易地看到一個值與另一個值相比較的多少。

        縮放數據有多種方法,在本教程中,我們將使用一種稱為數據歸一的方法。

        標準化方法使用以下公式:

        z = (x - u) / s

        其中z是新值,x是原始值,u是平均值,而s是標準值偏差。

        如果從上面的數據集中獲取權重列,則第一個值為790,縮放后的值為:

        (790 - 1292.23) / 238.74 = -2.1

        如果從上面的數據集中獲取“體積”列,則第一個值為1.0,縮放后的值為:

        (1.0 - 1.61) / 0.38 = -1.59

        現在,您可以將-2.1與-1.59相比較,而不是將790與1.0相比較。

        不必手動執行此操作,Python sklearn模塊有一個稱為StandardScaler()的方法,該方法返回帶有轉換數據集方法的Scaler對象。

        例如: 

        縮放“重量”和“體積”列中的所有值:請注意,前兩個值為-2.1和-1.59,與我們的計算相對應:運行示例?

        import pandasfrom sklearn import linear_modelfrom sklearn.preprocessing import StandardScalerscale = StandardScaler()df = pandas.read_csv("cars2.csv")X = df[['Weight', 'Volume']]scaledX = scale.fit_transform(X)print(scaledX)

        Result:

        [[-2.10389253 -1.59336644] [-0.55407235 -1.07190106] [-1.52166278 -1.59336644] [-1.78973979 -1.85409913] [-0.63784641 -0.28970299] [-1.52166278 -1.59336644] [-0.76769621 -0.55043568] [ 0.3046118  -0.28970299] [-0.7551301  -0.28970299] [-0.59595938 -0.0289703 ] [-1.30803892 -1.33263375] [-1.26615189 -0.81116837] [-0.7551301  -1.59336644] [-0.16871166 -0.0289703 ] [ 0.14125238 -0.0289703 ] [ 0.15800719 -0.0289703 ] [ 0.3046118  -0.0289703 ] [-0.05142797  1.53542584] [-0.72580918 -0.0289703 ] [ 0.14962979  1.01396046] [ 1.2219378  -0.0289703 ] [ 0.5685001   1.01396046] [ 0.3046118   1.27469315] [ 0.51404696 -0.0289703 ] [ 0.51404696  1.01396046] [ 0.72348212 -0.28970299] [ 0.8281997   1.01396046] [ 1.81254495  1.01396046] [ 0.96642691 -0.0289703 ] [ 1.72877089  1.01396046] [ 1.30990057  1.27469315] [ 1.90050772  1.01396046] [-0.23991961 -0.0289703 ] [ 0.40932938 -0.0289703 ] [ 0.47215993 -0.0289703 ] [ 0.4302729   2.31762392]]

        2、預測CO2值

        “多元回歸”一章的任務是在僅知道汽車的重量和體積的情況下預測其排放的二氧化碳。

        縮放數據集后,在預測值時必須使用縮放比例:

        例如:

        預測1.3升重2300公斤的汽車的二氧化碳排放量:運行示例?

        import pandasfrom sklearn import linear_modelfrom sklearn.preprocessing import StandardScalerscale = StandardScaler()df = pandas.read_csv("cars2.csv")X = df[['Weight', 'Volume']]y = df['CO2']scaledX = scale.fit_transform(X)regr = linear_model.LinearRegression()regr.fit(scaledX, y)scaled = scale.transform([[2300, 1.3]])predictedCO2 = regr.predict([scaled[0]])print(predictedCO2)

         Result:

        [107.2087328]

        免責聲明:以上內容(如有圖片或視頻亦包括在內)有轉載其他網站資源,如有侵權請聯系刪除

        中文在线天堂中文

        1. <track id="5jh9g"><ruby id="5jh9g"></ruby></track>