亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

學習日志---線性回歸實現

發布時間:2020-03-19 22:24:56 來源:網絡 閱讀:354 作者:wukong0716 欄目:開發技術

由對偏導數的計算可以得到w的計算公式:如下

假定輸入數據存放在矩陣x中,而回歸系數存放在向量w中。那么對于給定的數據學習日志---線性回歸實現學習日志---線性回歸實現,預測結果將會通過學習日志---線性回歸實現學習日志---線性回歸實現給出。對于x和y,如何找到w?常用的方法是找到平方誤差最小的w。

        平方誤差可以寫做:

學習日志---線性回歸實現

學習日志---線性回歸實現

        用矩陣表示還可以寫做學習日志---線性回歸實現學習日志---線性回歸實現。對w求導,解得w如下:

學習日志---線性回歸實現

采用的數據是在UCI上下載的回歸汽車msg性能的數據集;

由于下載的數據格式不標準,因此這里自己寫了一段java代碼將數據集的格式進行了重新的規整,代碼如下:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class MyMaze {
    
    public static void main(String[] args) throws Exception {
        FileInputStream fileInputStream = new FileInputStream(new File("E:\\DataRegression.txt"));
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(fileInputStream));
        File file = new File("E:\\result.txt");
        FileOutputStream fileOutputStream = new FileOutputStream(file);
        BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(fileOutputStream));
        String line;
        String newline = null;
        while((line = bufferedReader.readLine())!=null)
        {
            if(line == null)
            {
                break;
            }
            int length = line.length();
            for(int i = 0; i<length; i++)
            {
                while(line.charAt(i)==' ')
                {
                    if(line.charAt(i+1)!=' ')
                    {
                        newline = newline + " ";
                        break;
                    }
                    i++;
                }
                newline = newline + line.charAt(i);
            }
            newline = newline + "\r\n";
            newline = newline.substring(4);
            bufferedWriter.write(newline);
           
            newline = null;
        }
        
        bufferedWriter.close();
    }
    

}
輸出的文件是每個變量之間都有兩個空格的數據集,其中第一項是因變量,也就是msg。

下面是采用python方法對數據集進行線性回歸:

import numpy as np
import matplotlib.pyplot as plt

numFeat = len(open('result.txt').readline().split('  '))
dataMat = []; labelMat = []
fr = open('result.txt')
//這里對每行的數據進行分割,提取每行的數據
for line in fr.readlines():
    lineArr=[]
    curline = line.split('  ')
    for i in range(1,numFeat):
        lineArr.append(float(curline[i]))
    dataMat.append(lineArr)
    labelMat.append(float(curline[0]))
//將序列轉為矩陣
xMat = np.mat(dataMat)
yMat = np.mat(labelMat).T
xTx = xMat.T*xMat
/判斷行列式的值是否為0
if np.linalg.det(xTx) == 0.0:
    print "wrong"
//利用公式求參數
ws = xTx.I*(xMat.T*yMat)

//利用matplotLib畫圖,制定在fig中
fig = plt.figure()
ax = fig.add_subplot(111)
xCopy = xMat.copy()
xCopy.sort(0)
yHat = xCopy*ws
//這里是找x矩陣中某一項與yHat的關系,如這里是第二項
ax.plot(xCopy[:,1],yHat)
//展示圖像
plt.show()

//這里是求出相關系數的函數,越接近1越好
yHat = xMat*ws
print yHat.T.shape
print yMat.shape
print np.corrcoef(yHat.T, yMat.T)


附件:http://down.51cto.com/data/2366089
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

虹口区| 游戏| 南和县| 城市| 错那县| 大方县| 龙口市| 柳河县| 环江| 松溪县| 克什克腾旗| 白玉县| 太谷县| 宁远县| 蒙自县| 武邑县| 福建省| 枣阳市| 内乡县| 阳谷县| 江陵县| 延津县| 安丘市| 自贡市| 会理县| 安福县| 固始县| 海门市| 吉木乃县| 福海县| 璧山县| 万安县| 门头沟区| 鹤庆县| 应城市| 东光县| 香港| 新营市| 尉氏县| 银川市| 兖州市|