1 import numpy as np2 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...