使用C 解線性回歸方程

2021-10-05 09:55:44 字數 1089 閱讀 5535

首先發本貼主要是因為當時遇到這個問題時,在網上沒有找到太多的技術資料,所以在解決本問題之後,決定發個貼子記錄一下。

先說說問題本身,現在分別有兩類資料為x和y,x和y裡面有十組資料,現在需要通過y=-aln(x)+b這個公式計算出a,b的值,這是乙個線性回歸方程的解決方法,先貼一下解答本方程的數學公式。

這是公式路徑。

有了數學公式之後就好辦了,我們用**去實現這個公式的演算法即可,直接貼**。`

/// /// 線性回歸分析

///

/// models

/// 返回結果

public static void linearregression(listmodels, out double a, out double b)

x_ /= models.count;//計算x_平均值

y_ /= models.count;//計算y_平均值

lnx /= models.count;//計算lnx平均值

an = math.abs((lnx_y - (10 * lnx * y_)) / (lnx_pow - (models.count * math.pow(lnx, 2))));//此處為計算a的值

a = convert.todouble(value: (math.truncate(an * 100) / 100).tostring("0.00"));//按照客戶要求將a結果保留兩位小數,非四捨五入

bn = y_ - (an * lnx);//此處計算b的值,其實當a的值計算出來後,b的值顯而易見,直接將x,y,a的值帶入公式計算即可,需要注意的是,這裡計算時,a的值為原值,即未經過保留小數字的值,否則值有偏差

b = convert.todouble(value: (math.truncate(bn * 1000) / 1000).tostring("0.000"));//按照客戶要求將b結果保留三位小數,非四捨五入

}catch (exception)

}`這個方法中我傳的是乙個list集合,但是我把測試的資料值也放進來了,方便大家看的更清楚,以上就是整個的解決方案,非常感謝我的好朋友為我提供這個資料公式,bug滿滿的一天又要開始了。

用線性回歸方程來模擬梯度下降法

這裡為了更好的記錄梯度下降法的邏輯,用簡單的二元線性回歸方程來模擬梯度下降法來找到最小值,然後以後也可以將這個邏輯來尋找最小最優演算法 所以得出線性回歸的損失函式是mse,也就是均方誤差,然後對均方誤差求導,就能得到梯度值,具體實現 如下,以簡單線性回歸方程為例 import numpy as np...

用python求解多元線性回歸方程的權重和殘差

最近學金融的妹妹要處理資料寫 對乙個文科妹子來說,數學學不會,公式看不懂怎麼破 作為姐姐的我看在眼裡,疼在心裡,打算幫妹妹解決掉資料計算這方面的問題。原來就是求三元線性回歸的殘差啊,害,這有什麼難的,妹妹就是不會算權重,一直在網上尋找已經算好權重的資料,為此特意開通了什麼會員,咱也不知道咱也不敢問。...

二次線性回歸方程公式 什麼時候需要使用線性回歸

以前有一位特別具有冒險精神的商業分析師將其在職業生涯的早期階段嘗試根據特定資料集中的模式來 結果,這種冒險通常以線性回歸的形式進行,這是一種簡單而強大的 方法,可以使用常用的業務工具來快速實現。對於這個新發現的技能,雖然他是非常有用的,但是它被過度使用了,所有人遇到資料分析一上來就是線性回歸,這種狀...