最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

回歸預測分析python數(shù)據(jù)化運營線性回歸總結

 更新時間:2021年08月25日 15:57:20   作者:Mr數(shù)據(jù)楊  
本文主要介紹了python數(shù)據(jù)化運營中的線性回歸一般應用場景,常用方法,回歸實現(xiàn),回歸評估指標,效果可視化等,并采用了回歸預測分析的數(shù)據(jù)預測方法

內(nèi)容介紹

以 Python 使用 線性回歸 簡單舉例應用介紹回歸分析。

線性回歸是利用線性的方法,模擬因變量與一個或多個自變量之間的關系;

對于模型而言,自變量是輸入值,因變量是模型基于自變量的輸出值,適用于x和y滿足線性關系的數(shù)據(jù)類型的應用場景。

用于預測輸入變量和輸出變量之間的關系,特別是當輸入變量的值發(fā)生變化時,輸出變量的值也隨之發(fā)生變化。

回歸模型正是表示從輸入變量到輸出變量之間映射的函數(shù)。

線性回歸幾乎是最簡單的模型了,它假設因變量和自變量之間是線性關系的,一條直線簡單明了。

一般應用場景

連續(xù)性數(shù)據(jù)的預測:例如房價預測、銷售額度預測、貸款額度預測。

簡單來說就是用歷史的連續(xù)數(shù)據(jù)去預測未來的某個數(shù)值。

線性回歸的常用方法

最小二乘法、貝葉斯嶺回歸、彈性網(wǎng)絡回歸、支持向量機回歸、支持向量機回歸等。

線性回歸實現(xiàn)

import numpy as np  # numpy庫
from sklearn.linear_model import BayesianRidge, LinearRegression, ElasticNet,Lasso  # 批量導入要實現(xiàn)的回歸算法
from sklearn.svm import SVR  # SVM中的回歸算法
from sklearn.ensemble.gradient_boosting import GradientBoostingRegressor  # 集成算法
from sklearn.model_selection import cross_val_score  # 交叉檢驗
from sklearn.metrics import explained_variance_score, mean_absolute_error, mean_squared_error, r2_score  # 批量導入指標算法
import pandas as pd  # 導入pandas
import matplotlib.pyplot as plt  # 導入圖形展示庫
import random

# 隨機生成100組包含5組特征的數(shù)據(jù)
feature = [[random.random(),random.random(),random.random(),random.random(),random.random()] for i in range(100)]
dependent = [round(random.uniform(1,100),2) for i in range(100)]

# 訓練回歸模型
n_folds = 6  # 設置交叉檢驗的次數(shù)
model_br = BayesianRidge()  # 建立貝葉斯嶺回歸模型對象
model_lr = LinearRegression()  # 建立普通線性回歸模型對象
model_etc = ElasticNet()  # 建立彈性網(wǎng)絡回歸模型對象
model_svr = SVR()  # 建立支持向量機回歸模型對象
model_la = Lasso()  # 建立支持向量機回歸模型對象
model_gbr = GradientBoostingRegressor()  # 建立梯度增強回歸模型對象
model_names = ['BayesianRidge', 'LinearRegression', 'ElasticNet', 'SVR', 'Lasso','GBR']  # 不同模型的名稱列表
model_dic = [model_br, model_lr, model_etc, model_svr,model_la, model_gbr]  # 不同回歸模型對象的集合
cv_score_list = []  # 交叉檢驗結果列表
pre_y_list = []  # 各個回歸模型預測的y值列表
for model in model_dic:  # 讀出每個回歸模型對象
    scores = cross_val_score(model, feature, dependent, cv=n_folds)  # 將每個回歸模型導入交叉檢驗模型中做訓練檢驗
    cv_score_list.append(scores)  # 將交叉檢驗結果存入結果列表
    pre_y_list.append(model.fit(feature, dependent).predict(feature))  # 將回歸訓練中得到的預測y存入列表

線性回歸評估指標

model_gbr:擬合貝葉斯嶺模型,以及正則化參數(shù)lambda(權重的精度)和alpha(噪聲的精度)的優(yōu)化。

model_lr:線性回歸擬合系數(shù)w=(w1,…)的線性模型,wp)將觀測到的目標與線性近似預測的目標之間的殘差平方和降到最小。

model_etc:以L1和L2先驗組合為正則元的線性回歸。

model_svr:線性支持向量回歸。

model_la:用L1先驗作為正則化器(又稱Lasso)訓練的線性模型

# 模型效果指標評估
model_metrics_name = [explained_variance_score, mean_absolute_error, mean_squared_error, r2_score]  # 回歸評估指標對象集
model_metrics_list = []  # 回歸評估指標列表
for i in range(6):  # 循環(huán)每個模型索引
    tmp_list = []  # 每個內(nèi)循環(huán)的臨時結果列表
    for m in model_metrics_name:  # 循環(huán)每個指標對象
        tmp_score = m(dependent, pre_y_list[i])  # 計算每個回歸指標結果
        tmp_list.append(tmp_score)  # 將結果存入每個內(nèi)循環(huán)的臨時結果列表
    model_metrics_list.append(tmp_list)  # 將結果存入回歸評估指標列表
df1 = pd.DataFrame(cv_score_list, index=model_names)  # 建立交叉檢驗的數(shù)據(jù)框
df2 = pd.DataFrame(model_metrics_list, index=model_names, columns=['ev', 'mae', 'mse', 'r2'])  # 建立回歸指標的數(shù)據(jù)框

在這里插入圖片描述
在這里插入圖片描述

線性回歸效果可視化

# 模型效果可視化
plt.figure()  # 創(chuàng)建畫布
plt.plot(np.arange(len(feature)), dependent, color='k', label='true y')  # 畫出原始值的曲線
color_list = ['r', 'b', 'g', 'y', 'p','c']  # 顏色列表
linestyle_list = ['-', '.', 'o', 'v',':', '*']  # 樣式列表
for i, pre_y in enumerate(pre_y_list):  # 讀出通過回歸模型預測得到的索引及結果
    plt.plot(np.arange(len(feature)), pre_y_list[i], color_list[i], label=model_names[i])  # 畫出每條預測結果線
plt.title('regression result comparison')  # 標題
plt.legend(loc='upper right')  # 圖例位置
plt.ylabel('real and predicted value')  # y軸標題
plt.show()  # 展示圖像

在這里插入圖片描述

數(shù)據(jù)預測

# 模型應用
new_point_set = [[random.random(),random.random(),random.random(),random.random(),random.random()],
                 [random.random(),random.random(),random.random(),random.random(),random.random()],
                 [random.random(),random.random(),random.random(),random.random(),random.random()],
                [random.random(),random.random(),random.random(),random.random(),random.random()]]  # 要預測的新數(shù)據(jù)集

print("貝葉斯嶺回歸模型預測結果:")
for i, new_point in enumerate(new_point_set):  # 循環(huán)讀出每個要預測的數(shù)據(jù)點
    new_pre_y = model_gbr.predict(np.array(new_point).reshape(1,-1))
    print ('預測隨機數(shù)值 %d 是:  %.2f' % (i + 1, new_pre_y))  # 打印輸出每個數(shù)據(jù)點的預測信息
print (50 * '-')
print("普通線性回歸模型預測結果:")
for i, new_point in enumerate(new_point_set):  # 循環(huán)讀出每個要預測的數(shù)據(jù)點
    new_pre_y = model_lr.predict(np.array(new_point).reshape(1,-1))
    print ('預測隨機數(shù)值 %d 是:  %.2f' % (i + 1, new_pre_y))  # 打印輸出每個數(shù)據(jù)點的預測信息
print (50 * '-')
print("彈性網(wǎng)絡回歸模型預測結果:")
for i, new_point in enumerate(new_point_set):  # 循環(huán)讀出每個要預測的數(shù)據(jù)點
    new_pre_y = model_etc.predict(np.array(new_point).reshape(1,-1))
    print ('預測隨機數(shù)值 %d 是:  %.2f' % (i + 1, new_pre_y))  # 打印輸出每個數(shù)據(jù)點的預測信息
print (50 * '-')   
print("支持向量機回歸模型預測結果:")
for i, new_point in enumerate(new_point_set):  # 循環(huán)讀出每個要預測的數(shù)據(jù)點
    new_pre_y = model_svr.predict(np.array(new_point).reshape(1,-1))
    print ('預測隨機數(shù)值 %d 是:  %.2f' % (i + 1, new_pre_y))  # 打印輸出每個數(shù)據(jù)點的預測信息
print (50 * '-')   
print("拉索回歸模型預測結果:")
for i, new_point in enumerate(new_point_set):  # 循環(huán)讀出每個要預測的數(shù)據(jù)點
    new_pre_y = model_la.predict(np.array(new_point).reshape(1,-1))
    print ('預測隨機數(shù)值 %d 是:  %.2f' % (i + 1, new_pre_y))  # 打印輸出每個數(shù)據(jù)點的預測信息

在這里插入圖片描述

以上就是回歸預測分析python數(shù)據(jù)化運營線性回歸總結的詳細內(nèi)容,更多關于python數(shù)據(jù)化運營線性回歸的資料請關注腳本之家其它相關文章!

相關文章

  • 使用python存儲網(wǎng)頁上的圖片實例

    使用python存儲網(wǎng)頁上的圖片實例

    今天小編就為大家分享一篇使用python存儲網(wǎng)頁上的圖片實例,具有很好的參考價值。希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • python kmeans聚類簡單介紹和實現(xiàn)代碼

    python kmeans聚類簡單介紹和實現(xiàn)代碼

    這篇文章主要為大家詳細介紹了python kmeans聚類簡單介紹和實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • python中文分詞庫jieba使用方法詳解

    python中文分詞庫jieba使用方法詳解

    這篇文章主要介紹了python中文分詞庫jieba使用方法詳解,需要的朋友可以參考下
    2020-02-02
  • pandas之數(shù)據(jù)修改與基本運算方式

    pandas之數(shù)據(jù)修改與基本運算方式

    這篇文章主要介紹了pandas之數(shù)據(jù)修改與基本運算方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Python中第三方庫Requests庫的高級用法詳解

    Python中第三方庫Requests庫的高級用法詳解

    雖然Python的標準庫中urllib2模塊已經(jīng)包含了平常我們使用的大多數(shù)功能,但是它的API使用起來讓人實在感覺不好。它已經(jīng)不適合現(xiàn)在的時代,不適合現(xiàn)代的互聯(lián)網(wǎng)了。而Requests的誕生讓我們有了更好的選擇。本文就介紹了Python中第三方庫Requests庫的高級用法。
    2017-03-03
  • Python實現(xiàn)多線程下載文件的代碼實例

    Python實現(xiàn)多線程下載文件的代碼實例

    這篇文章主要介紹了Python實現(xiàn)多線程下載文件的代碼實例,需要的朋友可以參考下
    2014-06-06
  • python日期與時間戳的各種轉換示例

    python日期與時間戳的各種轉換示例

    這篇文章主要介紹了python日期與時間戳的各種轉換示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • Python?if?else條件語句形式詳解

    Python?if?else條件語句形式詳解

    這篇文章主要介紹了Python?if?else條件語句形式詳解,在?Python?中,可以使用?if?else?語句對條件進行判斷,然后根據(jù)不同的結果執(zhí)行不同的代碼,這稱為選擇結構或者分支結構,接下來小編就根據(jù)情況的不同介紹if?else條件語句形式的不同,需要的朋友可以參考一下
    2022-03-03
  • Pandas數(shù)據(jù)形狀df.shape的實現(xiàn)

    Pandas數(shù)據(jù)形狀df.shape的實現(xiàn)

    本文主要介紹了Pandas數(shù)據(jù)形狀df.shape的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • python訪問sqlserver示例

    python訪問sqlserver示例

    這篇文章主要介紹了python訪問sqlserver示例,需要的朋友可以參考下
    2014-02-02

最新評論

黄龙县| 德州市| 鹤庆县| 上思县| 安塞县| 拜城县| 丰县| 双峰县| 乐山市| 美姑县| 鄂温| 玉门市| 通河县| 新绛县| 哈尔滨市| 蒲江县| 娄底市| 枞阳县| 泗洪县| 祁门县| 石景山区| 广南县| 黔西县| 泰宁县| 广西| 永川市| 深圳市| 克东县| 吉木萨尔县| 澎湖县| 佛冈县| 会昌县| 永年县| 卫辉市| 巴彦县| 马关县| 龙井市| 潼关县| 获嘉县| 阳原县| 宁阳县|