100天搞定機器學習|Day2簡單線性迴歸分析

第一天機器學習100天|Day1數據預處理,咱們學習了數據預處理。知道了,數據預處理是機器學習中最基礎和最麻煩,將來佔用時間最長的一步操做。數據預處理通常有六個步驟,導入庫、導入數據集、處理缺失值、分類數據轉化、分出訓練集和測試集、特徵縮放等。在處理數據過程當中,必須得兩個庫是numpy和pandas,也用到sklearn.preprocessing中的Imputer,LabelEncoder, OneHotEncoder,StandardScaler。
算法

算法自己很簡單,以前也有文章作過算法的解讀,有興趣的同窗請移步:dom

機器學習算法Python實現--線性迴歸分析機器學習

很早以前還用R作過一個R語言教程之-線性迴歸函數

下面開始,四步搞定簡單線性迴歸分析學習

第一步:數據預處理
測試

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
dataset = pd.read_csv('studentscores.csv')
X = dataset.iloc[ : , : 1 ].values
Y = dataset.iloc[ : , 1 ].values
from sklearn.model_selection import train_test_split
X_train, X_test, Y_train, Y_test = train_test_split( X, Y, test_size = 1/4, random_state = 0)
第二步:訓練集使用簡單線性迴歸模型來訓練
線程

from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor = regressor.fit(X_train, Y_train)
sklearn是機器學習的神器,以前有過介紹3d

Sklearn包含的經常使用算法code

LinearRegression(fit_intercept=True, normalize=False, copy_X=True, n_jobs=1)orm

fit_intercept:是否計算截距。
normalize: 當fit_intercept設置爲False時,該參數將被忽略。 若是爲真,則迴歸前的迴歸係數X將經過減去平均值併除以l2-範數而歸一化。
copy_X:布爾數,可選,默認爲真,若是爲真,X會被拷貝,反之,會被覆蓋。
n_jobs:指定線程數
第三步:預測結果

LinearRegression官網有具體用法,比較簡單,不想移步的同窗只需知道下面幾個用法便可

fit(X,y,sample_weight=None):X,y以矩陣的方式傳入,而sample_weight則是每條測試數據的權重,一樣以array格式傳入。
predict(X):預測方法,將返回預測值y_pred
score(X,y,sample_weight=None):評分函數,將返回一個小於1的得分,可能會小於0

Y_pred = regressor.predict(X_test)
第四步:可視化

訓練集結果可視化

plt.scatter(X_train , Y_train, color = 'red')
plt.plot(X_train , regressor.predict(X_train), color ='blue')
plt.show()

測試集結果可視化

plt.scatter(X_test , Y_test, color = 'red')
plt.plot(X_test , regressor.predict(X_test), color ='blue')
plt.show()

相關文章
相關標籤/搜索