在所有的自带数据里面,统一的套路都是,
from sklearn.datasets import * 引模块
x=shasha() 初始化数据集,就是拿到数据
print(x.keys()) 查看数据包含哪些东西,看到之后就可以操作了
在了解相关的数据之后,可以查看自己想要的东西,但这里面的数据一般都是可以直接用于模型训练的,所以就
然后就是对数据进行训练了
from sklearn.cross_validation import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)
clf = KNeighbors Classifier(n_neighbors=3).fit(X_train, y_train)
print("Test set accuracy: {:.2f}".format(clf.score(X_test, y_test)))
这好像是一篇关于胸问题的数据,
dict_keys(['feature_names', 'data', 'DESCR', 'target', 'target_names'])
上面的语句写法值得学习,x={n:v for n ,v in zip(cancer.target_names,np.bincount(cancer.target)) }
计算每个特征值的个数,并且以字典的形式输出,反正我是想不到这一层,当然了,毕竟我只是刚学,见到的世面太少了。
自带数据的引用方式都一样,都是套路
虽然不太懂,勉强解释一下,第一句,花三幅图并确定图的大小,k临近取不同的参数对数据进行训练得到分层图,然后在分层图上用数据的第一,二个特征为x轴,特征为y轴画出散点图,最后一句说的是在第一个图上画出图标,
对于模型不同参数的可视化结果,可以看出参数取几的时候模型既不过度拟合,又有较高的得分,代码可行,stratify是为了保持split前类的分布。比如有100个数据,80个属于A类,20个属于B类。如果train_test_split(... test_size=0.25, stratify = y_all), 那么split之后数据如下:
training: 75个数据,其中60个属于A类,15个属于B类。
testing: 25个数据,其中20个属于A类,5个属于B类。
用了stratify参数,training集和testing集的类的比例是 A:B= 4:1,等同于split前的比例(80:20)。通常在这种类分布不平衡的情况下会用到stratify。
忽略mglearn因为我的电脑上导不出这个模块,注意.reshape(-1,1)意思就是将原数组重新安排为新的数组,这的-1表示根据列得到的行数,意思是我只需要多少列就写多少列,至于有多少行,反正就俩个参数,知其一,另外一个就让电脑算。
线性模型:套路都是一样的套路
岭回归
ridge10 = Ridge(alpha=10).fit(X_train, y_train) alpha是啥鬼东西
有对数据的说明
alpha 和迭代次数的不同影响数据的预测结果得分
不同的模型对数据的预测
logreg = Logistic Regression().fit(X_train, y_train)
logreg = Logistic Regression()
y_pred = logreg.fit(X_train, y_train).predict(X_test)
Naive Bayes C assifiers 快