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