線性回歸及其實現c

2021-08-21 12:19:07 字數 1668 閱讀 8489

線性回歸是利用數理統計中回歸分析,來確定兩種或兩種以上變數間相互依賴的定量關係的一種統計分析方法。線性回歸中的資料呈現線性關係,其表達形式為y = w(t)x+b。其中w為係數向量組,x為特徵值向量組,b為常值係數。

我們通常將資料集分為訓練集和測試集,使用訓練集來確定待定係數,測試集來測試誤差,通過代價函式進行優化。

此次實現主要使用的是梯度下降法和留一法。

**如下,詳情見注釋: 

////created by zzx on 2018.7.16

#include #include#includeconst int sample = 28;//樣本數 fish樣本為44 house_price樣本為28

const int feature = 13;//特徵值數 fish樣本為4 house_price樣本為13

const int scaling = 10;//特徵縮放大小 fish樣本為100 house_price樣本為10

double a =0.001;//學習率 fish樣本為0.0002 house_price樣本為0.001

#define path "d:\house_price.txt"

using namespace std;

int main();

ifstream infile;

infile.open(path);

int i, j;

if (!infile)

for ( i = 0; i < sample ; i++)

cout << endl;

} infile.close();

double j=0;//代價函式

double y[sample] = ;//**函式

double temp[feature - 1] = , t = 1, p[feature] = ;//置換變數

double w[feature-1] = ;//係數陣列

double hype;//驗證值

double a=0;//驗證值與真實值的平均差異

int cnt = 0;//計數變數

double sum = 0, s[feature - 1] = ;//求和變數

cout << endl;

cout <<"輸出驗證結果:"<< endl;

for (int m = 0; m < sample; m++)

y[i] = sum;

}for (j = 0; j < feature - 1; j++)//梯度下降法

temp[j] = w[j] - a * sum;

}for (int i = 0; i < feature; i++)

for (i = 0; i < sample; i++)//求代價函式} }

} sum = 0;

for (i = 0; i < feature-1; i++)//開始使用留一法進行測試

hype = sum;

cout << "第" << m+1<<"個測試結果:" << endl;

cout << "驗證值為" << hype << endl;

cout << "真實值為" << p[3] << endl;

cout << "驗證值與真實值的差為" << fabs(p[3]-hype) << endl<一些不足之處:

線性表及其實現

類項名稱 線性表 list 資料物件集 n個元素的構成的有序序列 n 0 操作集 l list,x elementtype,整線性表的基本操作主要有 如下 線性表的基本操作 list makeempty 初始化乙個空的線性表 elementtype findkth int k list l 返回位序...

機器學習 邏輯回歸原理及其實現

引言 邏輯回歸是最簡單的機器學習模型,常常應用於各種簡單的任務中。這裡記錄邏輯回歸的背景以及學習方法,權當自己的學習記錄總結。邏輯回歸 首先,它不是乙個回歸模型,而是乙個分類模型,它是被用來做分類的。之所以稱之為回歸,是因為它的學習的是模型模型的引數以最佳擬合已有的資料。比如,根據已有的一些點,回歸...

軟體回歸測試及其實踐

摘要 本文描述了軟體回歸測試的概念和進行回歸測試的基本步驟,介紹了可用於回歸測試的測試用例庫的維護方法,給出了幾種可以可保證回歸測試效率和有效性的回歸測試策略,總結了回歸測試時應該注意的一些實際問題。一 概述 在軟體生命週期中的任何乙個階段,只要軟體發生了改變,就可能給該軟體帶來問題。軟體的改變可能...