目錄
基本步驟
決策樹(分類)
導入鳶尾花數據集
賦值給x與y
劃分數據集
?導入決策樹模型
實例化
訓練
?編輯?導入計算準確率的庫
計算準確率
隨機森林(分類)
導入鳶尾花的數據集,
賦值x,y
取后一百組
劃分數據集?
導入隨機森林分類模型
實例化模型
訓練模型?
?預測訓練集數據?
預測測試集數據?
?導入計算準確率的庫
對訓練集和測試集求準確率?
邏輯回歸
導入數據
對x,y賦值
劃分數據集?
導入模型
實例化模型
訓練?
預測訓練集和測試集?
看準確率?
支持向量機
導庫
賦值x,y
劃分數據集?
導SVC的庫
線性核?
實例化
訓練?
預測訓練集,測試集?
求準確率?
?編輯高斯核
實例化
訓練
預測訓練集,測試集
求準確率
KNN分類?
導庫
給x,y賦值
劃分數據集
導庫
實例化
訓練
預測訓練集與測試集
求準確率
基本步驟
導入數據集
賦值x,y
劃分數據集
導入模型
實例化模型
訓練模型
使用模型進行預測
求準確率
決策樹(分類)
導入鳶尾花數據集
賦值給x與y
#導入鳶尾花數據集,并賦值x,y
from sklearn.datasets import load_iris
data = load_iris()
x = data['data']
x
y = data['target']
y
#先研究二分類問題,選擇前一百的數據
x = x[:100]
y = y[:100]
?
劃分數據集
?導入決策樹模型
實例化
訓練
#導入我們的決策樹分類模型
from sklearn.tree import DecisionTreeClassifier#實例化模型
#設置最長深度為3,太深容易過擬合
model = DecisionTreeClassifier(max_depth = 3)#訓練模型
model.fit(X_train,y_train)
對訓練集和測試集進行預測
?導入計算準確率的庫
計算準確率
#準確率的庫
from sklearn.metrics import accuracy_score
這么厲害?直接干到1了,難以置信,于是查了一下,發現是我沒常識了,對不起?
于是我們修改代碼,選擇的是后100數據?
#先研究二分類問題,選擇后一百的數據
x = x[50:]
y = y[50:]
然后其他的不用改,從頭 按 shift+enter 運行到最后
?可以,這個結果才是比較正常的
也可以計算其他的指標比如MSE,R^2
from sklearn.metrics import mean_squared_error
mean_squared_error(真實值,預測值)
from sklearn.metrics import r2_score
r2_score(真實值,預測值)
隨機森林(分類)
導入鳶尾花的數據集,
賦值x,y
取后一百組
#導入鳶尾花的數據集,賦值x,y,取后一百組,與上面一樣
from sklearn.datasets import load_iris
data = load_iris()
x = data['data']
y = data['target']
#先研究二分類問題,選擇后一百的數據
x = x[50:]
y = y[50:]
劃分數據集?
#劃分數據集
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test=train_test_split(x,y,test_size=0.2,random_state=10)
導入隨機森林分類模型
實例化模型
訓練模型?
#導入我們的隨機森林分類模型
from sklearn.ensemble import RandomForestClassifier#實例化模型
model = RandomForestClassifier()#訓練模型
model.fit(X_train,y_train)
?預測訓練集數據?
#預測訓練集數據
y_train_pred = model.predict(X_train)
y_train_pred
預測測試集數據?
#預測測試集數據
y_test_pred = model.predict(X_test)
y_test_pred
?導入計算準確率的庫
#準確率
from sklearn.metrics import accuracy_score
對訓練集和測試集求準確率?
#訓練集
accuracy_score(y_train,y_train_pred)
#測試集
accuracy_score(y_test,y_test_pred)
這個模型還是不錯的
邏輯回歸
導入數據
對x,y賦值
#導入鳶尾花的數據集,賦值x,y,取后一百組,與上面一樣
from sklearn.datasets import load_iris
data = load_iris()
x = data['data']
y = data['target']
#先研究二分類問題,選擇后一百的數據
x = x[50:]
y = y[50:]
劃分數據集?
#劃分數據集
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test=train_test_split(x,y,test_size=0.2,random_state=10)
導入模型
實例化模型
訓練?
#導入我們的隨機森林分類模型
from sklearn.ensemble import RandomForestClassifier#實例化模型
model = RandomForestClassifier()#訓練模型
model.fit(X_train,y_train)
預測訓練集和測試集?
#預測訓練集數據
y_train_pred = model.predict(X_train)
y_train_pred
#預測測試集數據
y_test_pred = model.predict(X_test)
y_test_pred
看準確率?
#準確率
from sklearn.metrics import accuracy_score
#訓練集
accuracy_score(y_train,y_train_pred)
#測試集
accuracy_score(y_test,y_test_pred)
結果還是不錯的?
支持向量機
導庫
賦值x,y
#導入鳶尾花的數據集,賦值x,y,取后一百組,與上面一樣
from sklearn.datasets import load_iris
data = load_iris()
x = data['data']
y = data['target']
#先研究二分類問題,選擇后一百的數據
x = x[50:]
y = y[50:]
劃分數據集?
#劃分數據集
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test=train_test_split(x,y,test_size=0.2,random_state=18)
導SVC的庫
#導庫
from sklearn.svm import SVC
#實例化
#SVC有兩個核
線性核?
實例化
訓練?
# 線性核
model_linear = SVC(kernel='linear', C=1.0)
model_linear.fit(X_train,y_train)
預測訓練集,測試集?
#預測訓練集
#預測訓練集數據
y_train_pred = model_linear.predict(X_train)
y_train_pred
#預測測試集數據
y_test_pred = model_linear.predict(X_test)
y_test_pred
求準確率?
#準確率
from sklearn.metrics import accuracy_score
#訓練集
print("model_linear訓練集準確率:")
print(accuracy_score(y_train,y_train_pred))
#測試集
print("model_linear測試集準確率:")
print(accuracy_score(y_test,y_test_pred))
高斯核
實例化
訓練
# 高斯核(RBF)
model_rbf = SVC(kernel='rbf', gamma=0.1, C=1.0)
model_rbf.fit(X_train,y_train)
預測訓練集,測試集
#預測訓練集
#預測訓練集數據
y_train_pred = model_rbf.predict(X_train)
y_train_pred
#預測測試集數據
y_test_pred = model_rbf.predict(X_test)
y_test_pred
求準確率
#準確率
from sklearn.metrics import accuracy_score
#訓練集
print("model_rbfr訓練集準確率:")
print(accuracy_score(y_train,y_train_pred))
#測試集
print("model_rbf測試集準確率:")
print(accuracy_score(y_test,y_test_pred))
KNN分類?
導庫
給x,y賦值
#導入鳶尾花的數據集,賦值x,y,取后一百組,與上面一樣
from sklearn.datasets import load_iris
data = load_iris()
x = data['data']
y = data['target']
#先研究二分類問題,選擇后一百的數據
x = x[50:]
y = y[50:]
劃分數據集
#劃分數據集
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test=train_test_split(x,y,test_size=0.2,random_state=20)
導庫
實例化
訓練
#導庫
from sklearn.neighbors import KNeighborsClassifier#實例化
model = KNeighborsClassifier(n_neighbors=3)#訓練
model.fit(X_train, y_train)
預測訓練集與測試集
#預測訓練集數據
y_train_pred = model.predict(X_train)
y_train_pred
#預測測試集數據
y_test_pred = model.predict(X_test)
y_test_pred
求準確率
#準確率
from sklearn.metrics import accuracy_score
#訓練集
accuracy_score(y_train,y_train_pred)
#測試集
accuracy_score(y_test,y_test_pred)