線性回歸 最小二乘 diabetes

2021-09-24 10:10:48 字數 2004 閱讀 3778

資料集:

特徵:age 年齡

*** 性別

bmi 體質指數

bp 血壓

s1,s2,s3,s4,s4,s6 六種血清的化驗資料

標籤:value 一年後疾病進展的量化指標

一、載入庫

import numpy as np

import pandas as pd

from sklearn import datasets

from sklearn.linear_model import linearregression

from sklearn.model_selection import train_test_split

from sklearn.metrics import mean_squared_error, r2_score

import matplotlib as mpl

import matplotlib.pyplot as plt

# 設定字型為黑體,以支援中文顯示。

mpl.rcparams["font.family"] = "simhei"

# 設定在中文字型時,能夠正常的顯示負號(-)。

mpl.rcparams["axes.unicode_minus"] = false

二、資料預處理

# 載入資料集

data = pd.read_csv(r"diabetes.csv",header=0)

#data.sample(30)

#data.info()

# 檢視是否含有異常值

#data.describe()

# 檢查是否包含重複值

#data.duplicated().any()

# 如果有重複值,可以這樣去除重複值

# data.drop_duplicates(inplace=true)

三、呼叫方法

# 將載入的資料集分為特徵x與標籤y。

x, y = data.iloc[:, :-1], data.iloc[:, -1]

#通過train_test_splil將資料分為訓練集、測試集,測試集佔0.25的比例

train_x, test_x, train_y, test_y = train_test_split(x, y, test_size=0.25, random_state=0)

#display(len(train_y))

#display(len(test_y))

#例項化線性回歸模型

lr=linearregression()

#訓練模型

lr.fit(train_x,train_y)

#傳入測試集進行測試

result=lr.predict(test_x)

#對模型進行評估

display(result)

display(test_y.values)

# 均方誤差

print("mean squared error: %.2f" % mean_squared_error(test_y, result))

# 方差分數: 1代表完美**

print('variance score: %.2f' % r2_score(test_y, result))

四、結果視覺化

plt.figure(figsize=(15, 10))

# 繪製**值

plt.plot(result, "ro-", label="**值")

# 繪製真實值

plt.plot(test_y.values, "go--", label="真實值")

plt.title("線性回歸**-最小二乘")

plt.xlabel("樣本序號")

plt.ylabel("一年後疾病值")

plt.legend(loc="best")

plt.show()

sklearn 最小二乘線性回歸

sklearn是機器學習中的乙個常用的python第三方模組,裡面對機器學習的許多方法進行了封裝,在進行機器學習的任務時,許多常用的演算法可在這個模組中直接呼叫。並且sklearn中還提供了許多可用於分類 回歸的優質資料集。使用好sklearn最直接的方法就是仔細閱讀官方 sklearn就像是乙個模...

線性回歸 最小二乘求解

線性回歸 線性回歸用於數值 它的主要思想是利用預定的權值將屬性進行線性組合來表示類別 y w0 w1x1 w2x2 wnxn 其中,y是類別屬性值,x1,x2,xn是一般屬性值,w1,w2,xn是權值,w0稱為偏置,類似於一元線性回歸y ax b中b。求解線性回歸就是通過已知的一些資料點 1,xi1...

線性回歸之普通最小二乘

from sklearn import linear model reg linear model.linearregression print reg.fit 0,0 1,1 2,2 0,1,2 linearregression copy x true,fit intercept true,n j...