超級簡單的多元線性回歸應用


首先表達一下自己對多元線性回歸的理解:

方程:

y為正確的結果。p0為常數項,e為誤差,p1,p2,p3等是我們要通過sklearn訓練數據集得出來的回歸系數,x1,x2,x3等是我們訓練集里的特征向量。

這次我用到的數據集是kaggle的入學幾率預測數據集:

去kaggle搜索admission就是了

https://www.kaggle.com/datasets

長這個樣子:

 

其中Chance of Admit 是最終要自己預測的label

思路非常之簡單,上代碼~


一:數據探索
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt


csv_data = pd.read_csv('./data/Admission_Predict.csv')
#  讀取csv文件內容
print(csv_data.info())
#  了解數據表的基本情況:行數、列數、每列的數據類型、數據完整度。可以看到每列都有500行,可以說是沒有缺失值的。
print(csv_data.describe())
#  了解總數、平均值、標准差等一些統計數據
print(csv_data.head())
#  了解數據的模樣~
csv_data.drop('Serial No.',axis=1,inplace=True)
#  去掉沒什么用的ID一列

#數據歸一化,簡單地除以它們的最大值...
csv_data['GRE Score'] = csv_data['GRE Score']/340
csv_data['TOEFL Score'] = csv_data['TOEFL Score']/120
csv_data['University Rating'] = csv_data['University Rating']/5
csv_data['SOP'] = csv_data['SOP']/5
csv_data['LOR '] = csv_data['LOR ']/5
csv_data['CGPA'] = csv_data['CGPA']/10

#數據探索

 

運行結果:

 

二:簡單進行可視化

import seaborn as sns


print(csv_data.columns)
sns.regplot('GRE Score','Chance of Admit ',data=csv_data)

 

 

查看所有特征的聯系:
sns.pairplot(csv_data,diag_kind='kde',plot_kws={'alpha':0.2})

 

 

從圖可以看到,的確有那么一點回歸的樣子~

三:模型構建
from sklearn import linear_model


features = ['GRE Score', 'TOEFL Score', 'University Rating', 'SOP', 'LOR ', 'CGPA', 'Research',]
# 特征選擇
X = csv_data[features].iloc[:420,:-1]
Y = csv_data.iloc[:420,-1]
#選擇訓練集
X_test = csv_data[features].iloc[420:,:-1]
Y_test = csv_data.iloc[420:,-1]
#選擇測試集

regr = linear_model.LinearRegression()
#構造線性回歸模型
regr.fit(X,Y)
#模型訓練
print(regr.predict(X_test))  # 預測
print(list(Y_test))  #答案
print(regr.score(X_test,Y_test))  #准確度

 結果:

嘿,達到88%的准確度了呢,有用,開心/

The End~




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM