我发现对于我这种记性不太好的学生,学习还是要用笨方法,就想读书时候“死记硬背”课文,很多年后脱口而出,然后竟恍然大悟。“死记硬背”就像是给自己的“缓存”加东西,形成肌肉的记忆后,然后再慢慢消化(据说睡觉的时候都可以想起,那就是“写进缓存”了)。毕竟“缓存”有限,我把课程的代码精简了下。哈哈这么看来,就代码层面来说,分类和回归真的好像。套路很相近,这次背代码主要成了背单词了。
from sklearn import datasets
iris = datasets.load_iris()
X = iris.data
y = iris.target
from sklearn.linear_model import LogisticRegression
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from sklearn.naive_bayes import GaussianNB
print("LogisticRegression:",LogisticRegression().fit(X,y).score(X,y))
print("LinearDiscriminantAnalysis:",LinearDiscriminantAnalysis().fit(X,y).score(X,y))
print("GaussianNB:",GaussianNB().fit(X,y).score(X,y))
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
from sklearn.model_selection import GridSearchCV
from sklearn.model_selection import RandomizedSearchCV
pipe_svc = make_pipeline(StandardScaler(),SVC(random_state=1))
print("pipe_svc:",pipe_svc.fit(X,y).score(X,y))
param_range = [0.0001,0.001,0.01,0.1,1.0,10.0,100.0,1000.0]
param_grid = [{"svc__C":param_range,"svc__kernel":["linear","rbf"],"svc__gamma":param_range}]
gs = GridSearchCV(estimator=pipe_svc,param_grid=param_grid,scoring="accuracy",cv=10,n_jobs=-1)
rs = RandomizedSearchCV(estimator=pipe_svc,param_distributions=param_grid,scoring="accuracy",cv=10,n_jobs=-1)
print("gs:",gs.fit(X,y).best_score_)
print("rs:",rs.fit(X,y).best_score_)
用记事本保存如上的代码,然后改后缀名为py,python运行即得到如下的结果。