# 匯入第三方模組
from sklearn import svm
import pandas as pd
from sklearn import model_selection
from sklearn import metrics
# 讀取外部資料
letters = pd.read_csv(r'./letterdata.csv'
)# 資料前5行
letters.head(
)
letter
xbox
ybox
width
height
onpix
xbar
ybar
x2bar
y2bar
xybar
x2ybar
xy2bar
xedge
xedgey
yedge
yedgex0t
2835
18130
66108
0808
1i512
37210
55413
3928
4102d
41168
61062
61037
3739
3n711
6635
9464
410610
284g
2131
1866
6659
17510
# 將資料拆分為訓練集和測試集
predictors = letters.columns[1:
]x_train,x_test,y_train,y_test = model_selection.train_test_split(letters[predictors]
, letters.letter,
test_size =
0.25
, random_state =
1234
)
# 使用網格搜尋法,選擇線性可分svm「類」中的最佳c值c=[
0.05
,0.1
,0.5,1
,2,5
]parameters =
grid_linear_svc = model_selection.gridsearchcv(estimator = svm.linearsvc(
),param_grid =parameters,scoring=
'accuracy'
,cv=
5,verbose =1)
# 模型在訓練資料集上的擬合
grid_linear_svc.fit(x_train,y_train)
# 返回交叉驗證後的最佳引數值
grid_linear_svc.best_params_, grid_linear_svc.best_score_
fitting 5 folds for each of 6 candidates, totalling 30 fits
# 模型在測試集上的**
pred_ linear_svc = grid_linear_svc.predict(x_test)
# 模型的**準確率
metrics.accuracy_score(y_test, pred_linear_svc)
# 使用網格搜尋法,選擇非線性svm「類」中的最佳c值
kernel=
['rbf'
,'linear'
,'poly'
,'sigmoid']c=
[0.1
,0.5,1
,2,5
]parameters =
grid_svc = model_selection.gridsearchcv(estimator = svm.svc(
),param_grid =parameters,scoring=
'accuracy'
,cv=
5,verbose =1)
# 模型在訓練資料集上的擬合
grid_svc.fit(x_train,y_train)
# 返回交叉驗證後的最佳引數值
grid_svc.best_params_, grid_svc.best_score_
# 模型在測試集上的**
pred_svc = grid_svc.predict(x_test)
# 模型的**準確率
metrics.accuracy_score(y_test,pred_svc)
# 讀取外部資料
forestfires = pd.read_csv(r'c:\users\administrator\desktop\forestfires.csv'
)# 資料前5行
forestfires.head(
)
# 刪除day變數
forestfires.drop(
'day'
,axis =
1, inplace =
true
)# 將月份作數值化處理
forestfires.month = pd.factorize(forestfires.month)[0
]# 預覽資料前5行
forestfires.head(
)
# 匯入第三方模組
import seaborn as sns
import matplotlib.pyplot as plt
from scipy.stats import norm
# 繪製森林燒毀面積的直方圖
sns.distplot(forestfires.area, bins =
50, kde =
true
, fit = norm, hist_kws =
, kde_kws =
, fit_kws =
)# 顯示圖例
plt.legend(
)# 顯示圖形
plt.show(
)
# 匯入第三方模組
from sklearn import preprocessing
import numpy as np
from sklearn import neighbors
# 對area變數作對數變換
y = np.log1p(forestfires.area)
# 將x變數作標準化處理
predictors = forestfires.columns[:-
1]x = preprocessing.scale(forestfires[predictors]
)
# 將資料拆分為訓練集和測試集
x_train,x_test,y_train,y_test = model_selection.train_test_split(x, y, test_size =
0.25
, random_state =
1234
)
# 構建預設引數的svm回歸模型
svr = svm.svr(
)# 模型在訓練資料集上的擬合
svr.fit(x_train,y_train)
# 模型在測試上的**
pred_svr = svr.predict(x_test)
# 計算模型的mse
metrics.mean_squared_error(y_test,pred_svr)
# 使用網格搜尋法,選擇svm回歸中的最佳c值、epsilon值和gamma值
epsilon = np.arange(
0.1,
1.5,
0.2)
c= np.arange(
100,
1000
,200
)gamma = np.arange(
0.001
,0.01
,0.002
)parameters =
grid_svr = model_selection.gridsearchcv(estimator = svm.svr(
),param_grid =parameters,
scoring=
'neg_mean_squared_error'
,cv=
5,verbose =
1, n_jobs=2)
# 模型在訓練資料集上的擬合
grid_svr.fit(x_train,y_train)
# 返回交叉驗證後的最佳引數值
print
(grid_svr.best_params_, grid_svr.best_score_)
# 模型在測試集上的**
pred_grid_svr = grid_svr.predict(x_test)
# 計算模型在測試集上的mse值
metrics.mean_squared_error(y_test,pred_grid_svr)
第十三章 併發
13.1 動機 13.2 基本執行緒 如果必須要控制現成的執行順序,最好是根本不用執行緒,而是自己編寫特定順序彼此控制的協作子程式。繼承thread類或者實現runnable介面。內部類實現。13.3 共享受限資源 1 如果要對類中的某個方法進行同步控制,最好同步所有方法。如果忽略了其中乙個,通常很...
第十三章 類
1.類簡單地說是乙個性的資料型別。類當中有資料成員,和成員函式。類的基本思想就是體現出資料的抽象和封裝。2.這裡只需要說明乙個問題即可 就是類成員函式的const型別 class screen public const int get const int i const int j const 這裡...
第十三章 事件
1 事件的作用 事件是對委託的封裝,如同屬性對字段的封裝。封裝後可以在委託上實現更複雜的邏輯。1.1 封裝訂閱 委託允許使用 對其進行賦值,但向乙個委託例項賦值多個委託時,使用 會造成覆蓋之前的委託。事件只支援 或 對事件進行賦值 1.2 封裝發布 委託可以在其他類進行訪問,而事件可以確保只有包容類...