python 偏最小二乘回歸實現

2021-10-10 08:17:42 字數 1409 閱讀 3755

import pandas as pd

import numpy as np

from sklearn.cross_decomposition import plsregression

from sklearn.model_selection import gridsearchcv

from sklearn.model_selection import train_test_split

from sklearn.metrics import mean_squared_error, r2_score

#讀取資料

data = pd.read_csv(『d:/hitters.csv』)

print(data.head())

#salary裡有缺失值,直接將所在行刪掉

data = data.dropna()

#將非數字特徵變為以0,1替代的特徵

dms = pd.get_dummies(data[['league','division','newleague']])

#準備資料

y = data['salary']

x_ = data.drop(['salary','league','division','newleague'],axis=1).astype('float64')

x = pd.concat([x_,dms[['league_n','division_w','newleague_n']]],axis=1)

# 訓練集、測試集劃分

x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.25,random_state= 42)

#回歸模型、引數

pls_model_setup = plsregression(scale=true)

param_grid =

#gridsearchcv優化引數、訓練模型

gsearch = gridsearchcv(pls_model_setup, param_grid)

pls_model = gsearch.fit(x_train, y_train)

#列印 coef

print('partial least squares regression coefficients:',pls_model.best_estimator_.coef_)

#對測試集做**

pls_prediction = pls_model.predict(x_test)

#計算r2,均方差

pls_r2 = r2_score(y_test,pls_prediction)

pls_mse = np.sqrt(mean_squared_error(y_test,pls_prediction))

MATLAB 偏最小二乘回歸演算法

設有q個因變數和p個自變數。為了研究因變數和自變數的統計關係,觀測n個樣本點,構成了自變數與因變數的資料表x 1 兩個成分盡可能多的攜帶他們各自資料表的變異資訊。2 兩個成分的相關程度達到最大。也就是說,他們能夠盡可能好地代表各自的資料表,同時自變數成分 在第乙個成分被成功提取後,分別實施x對 該m...

偏最小二乘回歸(基於MATLAB)

clc clear all 匯入資料 load data.mat s data data 1 27,29 n 27 n 是自變數的個數 m 1 m 是因變數的個數 讀取訓練資料 train num 1600 訓練樣本數 train data s data 1 train num,mu mean tr...

最小二乘 加權最小二乘 matlab實現

最小二乘 最小二乘法 又稱最小平方法 是一種數學優化技術。它通過最小化誤差的平方和尋找資料的最佳函式匹配。利用最小二乘法可以簡便地求得未知的資料,並使得這些求得的資料與實際資料之間誤差的平方和為最小 最小二乘法還可用於曲線擬合,其他一些優化問題也可通過最小化能量或最大化熵用最小二乘法來表達。加權最小...