機器學習 線性回歸 KNN 決策樹 例項

2021-09-25 01:43:31 字數 2910 閱讀 2014

1 import numpy as np

2 import pandas as pd

3 from sklearn.linear_model import linearregression

4 from sklearn.preprocessing import standardscaler

5 from sklearn.neighbors import kneighborsclassifier

6 from sklearn.feature_extraction import dictvectorizer

7 from sklearn.tree import decisiontreeclassifier

1 def price_predict():

2 # 資料有三個特徵:距離地鐵距離、附近小學數量、小區綠化率

3 x = np.array([[500.0, 3.0, 0.3], [1000.0, 1.0, 0.6], [750.0, 2.0, 0.3], [600.0, 5.0, 0.2], [1200.0, 1.0, 0.6]])

4 # 具有三個特徵的房屋對應的房價

5 y = np.array([10000, 9000, 8000, 12000, 8500])

6 7 # 標準化,按列轉化,轉化到資料均值為0方差為1的標準分布內

8 std_x = standardscaler()

9 x_train = std_x.fit_transform(x)

10 std_y = standardscaler()

11 y_train = std_y.fit_transform(y.reshape(-1, 1))

12 13 # 構建線性**模型

14 lr = linearregression()

15 # 模型在歷史資料上進行訓練,y.reshape(-1,1)將y變為二維陣列,fit函式要求二維陣列

16 lr.fit(x_train, y_train)

17 18 # 使用訓練模型**新房屋**

19 x_predict = std_x.transform(np.array([[1300, 3.0, 0.4]]))

20 print(std_y.inverse_transform(lr.predict(x_predict)))

1 # k近鄰分類(k表示以最近的幾個鄰居作為分類的指標)

2 # knn表示了物以類聚人以群分的基本思考方法,最近的k個鄰居是什麼類別,**樣本就會被劃為該類別

3 def knn_predict_rev():

4 # 資料理解為二維座標上的6歌點

5 x = np.array([[1.0, 1.0], [1, 1.5], [0.5, 1.5], [3.0, 3.0], [3.0, 3.5], [2.8, 3.1]])

6 # 6個點的類別,按順序和x依次對應

7 y = np.array([0, 0, 0, 1, 1, 1])

8 9 # n_neighbors就是knn中的k

10 knn = kneighborsclassifier(n_neighbors=3)

11 knn.fit(x, y)

12 print(knn.predict(np.array([[2.0, 3.0]])))

1 def decide_play():

2 '''

3 id3

4 :return:

5 '''

6 df = pd.read_csv('dtree.csv')

7 # 將資料轉換為字典格式,orient='record'引數指定資料格式為的形式

8 # 乙個字典對應一行資料

9 dict_train = df.loc[:, ['outlook', 'temperatur', 'humidity', 'windy']].to_dict(orient='record')

10 # 如果pandas從dataframe取出一列資料,該資料型別會變成series

11 dict_target = pd.dataframe(df['playgolf'], columns=['playgolf']).to_dict(orient='record')

12 13 # 訓練資料字典向量化

14 dv_train = dictvectorizer()

15 x_train = dv_train.fit_transform(dict_train)

16 # 目標資料字典向量化

17 dv_target = dictvectorizer()

18 y_target = dv_target.fit_transform(dict_target)

19 20 # 建立決策樹

21 d_tree = decisiontreeclassifier()

22 # 訓練資料

23 d_tree.fit(x_train, y_target)

24 data_predict =

30 # 標準化要**的資料

31 x_data = dv_train.transform(data_predict)

32 # **資料並轉換為原格式

33 print(dv_target.inverse_transform(d_tree.predict(x_data)))

線性回歸,決策樹,knn等6種機器學習回歸方法總結

線性回歸所能夠模擬的關係其實遠不止線性關係。線性回歸中的 線性 指的是係數的線性,而通過對特徵的非線性變換,以及廣義線性模型的推廣,輸出和特徵之間的函式關係可以是高度非線性的。在特徵選擇中通常使用的準則是 資訊增益。決策樹生成選擇好特徵後,就從根節點觸發,對節點計算所有特徵的資訊增益,選擇資訊增益最...

機器學習 手寫數字識別(KNN 決策樹)

knn 及決策樹演算法為監督學習中的兩種簡單演算法。knn演算法 鄰近演算法 的核心思想是如果乙個樣本在特徵空間中的k個最相鄰的樣本中的大多數屬於某乙個類別,則該樣本也屬於這個類別,並具有這個類別上樣本的特性。歐式距離的計算公式 假設每個樣本有兩個特徵值,如 a a1,b1 b a2,b2 則ab的...

決策樹(二)決策樹回歸

回歸 決策樹也可以用於執行回歸任務。我們首先用sk learn的decisiontreeregressor類構造一顆回歸決策樹,並在乙個帶雜訊的二次方資料集上進行訓練,指定max depth 2 import numpy as np quadratic training set noise np.r...