sklearn6大功能
分类:离散
回归:连续
聚类:无监督学习
算法:随机森林,决策树,知识向量机 svm,KNN,线性回归
sklearn处理机器学习问题的三个步骤:数据准备与预处理 =》模型选择与训练=》模型验证与参数调优
知识向量机svm 杨丽坤 98~2006年吊打神经网络,直到希顿的深度信念网络出现
决策树就一棵树;随机森林有很多棵树,集成的思想。
sklearn_regression.py
import numpy as np
import matplotlib.pyplot as plt
# from sklearn import linear_model
# from sklearn import tree
# from sklearn.tree import DecisionTreeRegressor
# from sklearn import neighbors
# from sklearn import svm
from sklearn import ensemble
def f(x1,x2):
y=0.5*np.sin(x1)+0.5*np.cos(x2)+0.1*x1+3
return y
def load_data():
x1_train=np.linspace(0,50,500)
x2_train=np.linspace(-10,10,500)
data_train=np.array([[x1,x2,f(x1,x2)+(np.random.random(1)-0.5)]for x1,x2 in zip(x1_train,x2_train)])
x1_test= np.linspace(0,50,100)+0.5*np.random.random(100)
x2_test= np.linspace(-10,10,100)+0.02*np.random.random(100)
data_test = np.array([[x1,x2,f(x1,x2)] for x1,x2 in zip(x1_test,x2_test)])
return data_train, data_test
def try_different_method(clf):
train, test = load_data()
x_train, y_train = train[:,:2], train[:,2] #数据前两列是x1,x2 第三列是y,这里的y有随机噪声
x_test ,y_test = test[:,:2], test[:,2] # 同上,不过这里的y没有噪声
clf.fit(x_train,y_train) # 训练
score = clf.score(x_test, y_test) #训练的怎么样
result = clf.predict(x_test) # 预测
plt.figure()
plt.plot(np.arange(len(result)), y_test,'go-',label='true value')
plt.plot(np.arange(len(result)),result,'ro-',label='predict value')
plt.title('score: %f'%score)
plt.legend()
plt.show()
def main():
# clf=linear_model.LinearRegression()
# try_different_method(clf)
# clf = DecisionTreeRegressor()
# try_different_method(clf)
# clf = svm.SVR()
# try_different_method(clf)
# clf=neighbors.KNeighborsRegressor()
# try_different_method(clf)
# clf = ensemble.RandomForestRegressor(n_estimators=20) #随机森林
# try_different_method(clf)
# clf = ensemble.AdaBoostRegressor(n_estimators=50) # adaboost
# try_different_method(clf)
clf = ensemble.GradientBoostingRegressor(n_estimators=100) # GBRT 梯度回升
try_different_method(clf)
if __name__=="__main__":
main()
数据为王,有算法没数据没有意义
残差网络2015年
残差网络之后就没有很牛逼的网络,imagenet 2015年后停止比赛,是因为发现比赛都是残差网络resnet的基础上调参,没有实质的发展。
理论跟不上应用。