一,简单示例
1.数据准备
from sklearn import datasets
from sklearn.model_selection import train_test_split
iris=datasets.load_iris()
2.将特征与标签分开
x,y=datasets.load_iris(return_X_y=True)
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.3)
3.建立模型
from sklearn.neighbors import KNeighborsClassifier
knn=KNeighborsClassifier()
4.训练
knn.fit(x_train,y_train)
KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
metric_params=None, n_jobs=None, n_neighbors=5, p=2,
weights='uniform')
5.测试
acc=knn.score(x_test,y_test)
print(acc)
0.9333333333333333
二,线性回归与交叉验证
from sklearn.datasets import fetch_california_housing
from sklearn.linear_model import LinearRegression,Lasso,Ridge,ElasticNet
from sklearn.model_selection import cross_val_score
x,y=fetch_california_housing(return_X_y=True)
lr=LinearRegression()
loss=-cross_val_score(lr,x,y,cv=5,scoring='neg_mean_squared_error').mean()
print(y.min(),y.max())
print(loss)
0.14999 5.00001
0.5582901717686815
Lasso(L1正则化),Ridge(L2正则化),ElasticNet(L1和L2正则化都有)
lasso=Lasso(alpha=0.01)
loss1=-cross_val_score(lasso,x,y,cv=5,scoring='neg_mean_squared_error').mean()
ridge=Ridge(alpha=0.01)
loss2=-cross_val_score(ridge,x,y,cv=5,scoring='neg_mean_squared_error').mean()
elasticnet=ElasticNet(alpha=0.01)
loss3=-cross_val_score(elasticnet,x,y,cv=5,scoring='neg_mean_squared_error').mean()
print(loss1,loss2,loss3)
0.564023420597941 0.558290056170532 0.5603421342140549
三,逻辑回归与学习曲线
from sklearn.datasets import load_breast_cancer
from sklearn.linear_model impor