import pandas
import numpy
# read the data
data = pandas.read_csv(
'data.csv'
)# split the data into x and y
x = numpy.array(data[
['x1'
,'x2']]
)y = numpy.array(data[
'y']
)
# import statements for the classification algorithms
from sklearn.linear_model import logisticregression
from sklearn.tree import decisiontreeclassifier
from sklearn.svm import svc
# logistic regression classifier(邏輯回歸)
classifier = logisticregression(
)classifier.fit(x,y)
# decision tree classifier(決策樹)
classifier = decisiontreeclassifier(
)classifier.fit(x,y)
# support vector machine classifier(svm)
classifier = svc(
)classifier.fit(x,y)
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=
0.1)
#測試集佔10%
準確率from sklearn.metrics import accuracy_score
accuracy = accuracy_score(y_true, y_pred)
絕對值誤差from sklearn.metrics import mean_absolute_error
from sklearn.linear_model import linearregression
classifier = linearregression(
)classifier.fit(x, y)
pred = classifier.predict(x)
error = mean_absolute_error(y, pred)
均方誤差from sklearn.metrics import mean_squared_error
from sklearn.linear_model import linearregression
classifier = linearregression(
)classifier.fit(x, y)
pred = classifier.predict(x)
error = mean_squared_error(y, pred)
r2 scorefrom sklearn.metrics import r2_score
from sklearn.linear_model import linearregression
classifier = linearregression(
)classifier.fit(x, y)
pred = classifier.predict(x)
score = r2_score(y, pred)
由於將資料集分為訓練集和測試集,測試集的資料不會參入訓練,會造成資料浪費,k折交叉驗證就是為了充分利用資料。
k折交叉驗證方法將資料集分成k份,其中k-1份用做訓練集,剩下的1份作為驗證集,以這種方式執行k輪,得到k個模型評測結果.對k次的評估結果取平均,作為該模型的整體效能.(k一般取值為5或者10)。
from sklearn.model_selection import kfold
kf = kfold(n_splits=
4, shuffle=
true
)x =[1
,2,3
,4,5
,6,7
,8]y =[0
,0,1
,0,1
,0,0
,1]for train_indices, test_indices in kf.split(x, y)
:print
(train_indices, test_indices)
[1 3 4 5 6 7] [0 2]注:kf.split()得到的是資料的序號。[0 1 2 5 6 7] [3 4]
[0 1 2 3 4 7] [5 6]
[0 2 3 4 5 6] [1 7]
網路搜尋即在那些用不同的超引數訓練的模型中找出在驗證集表現最好的模型
from sklearn.model_selection import gridsearchcv
from sklearn.svm import svc
#選擇模型,這裡採用svc(support vector classification就是支援向量機用於分類)
model = svc(
)#選擇超引數;鍵是引數的名稱,值是每個引數可能值的列表
parameters =
#建立乙個評分機制
from sklearn.metrics import make_scorer
from sklearn.metrics import f1_score
scorer = make_scorer(f1_score)
#建立交叉驗證集
from sklearn.model_selection import kfold
kf = kfold(n_splits=
4, shuffle=
true
)#使用引數和評分機制建立乙個 gridsearch 物件
grid_obj = gridsearchcv(model, parameters, scoring=scorer, cv=kfold)
grid_fit = grid_obj.fit(x, y)
#獲得最佳模型
best_model = grid_fit.best_estimator_
Scikit learn 庫的使用
1.與文字處理相關的庫 1.對語料庫提取特徵詞集合 from sklearn.feature extraction.text import tfidfvectorizer,countvectorizer 下面的語句初始化 tfidfvectorizer 物件,傳入引數有 max df df比率大於其...
python常用函式 enumerate函式
1 如果對乙個列表,既要遍歷索引又要遍歷元素時,首先可以這樣寫 list1 這 是 乙個 測試 for i in range len list1 print i list1 i 2 上述方法有些累贅,利用enumerate 會更加直接和優美 list1 這 是 乙個 測試 for index,ite...
Dart Flutter開發中的幾個常用函式
幾個flutter開發中的常用函式 返回當前時間戳 static intcurrenttimemillis 複製到剪粘板 static copytoclipboard final string text static const rollupsize units gb mb kb b 返回檔案大小字...