数据量太少容易发生欠拟合
正负样本数要平衡 如果不均衡 后续优化操作
这里有sklearn的部署要求及安装指令
加载数据集示例
from sklearn import datasets
iris = datasets.load_iris()
digits = datasets.load_digits() //手写数字识别 这里用的都是sklearn里自带的数据集
lb = load_boston()
学习和预测
from sklearn import svm 这里用的svm模型
clf = svm.SVC(gamma=0.001, C=100.)
clf.fit(digits.data[:-1], digits.target[:-1])
clf.predict(digits.data[-1:])
模型持久化 也就是模型的保存和加载
import pickle
s = pickle.dumps(clf) //dumps 保存
clf2 = pickle.loads(s) //loads加载
clf2.predict(x[0:1])
在sklearn的具体情况下 使用joblib替换pickle
from joblib import dump,load
dump(clf, 'filename.joblib')
clf = load('filename.joblib')
这里附上使用sk-learn完成鸢尾花分类的代码
鸢尾花代码
model.fit 训练
model.coef_ w
model.intercept b 与y轴的交点
model.get_params()
model.score 对模型打分
这里有官方的sklearn的API手册: https://scikit-learn.org/stable/modules/classes.html
中文: https://blog.csdn.net/rankiy/article/details/102663650
部分api讲解
class sklearn.cluster.KMeans(n_clusters=8, init=’k-means++’ 默认的初始化方式也可以是random, n_init=10, max_iter=300, tol=0.0001, precompute_distances=’auto’, verbose=0, random_state=None, copy_x=True, n_jobs=None,algorithm=’auto’# ):K-Means聚类
数据稀疏 full 数据稠密 elkan 不知道数据是否稀疏就用auto
文本A中找到文本B 用双聚类
降维用矩阵分解
PCA
SVD奇异值分解
还有xgboost
特征工程中用的 很重要
当我们数据处理完成之后要选择有意义的特征输入到模型当中
就是哪些特征用哪些不用
要找发散的特征
如果这个特征不发散 则对于样本的区分没有什么用
特征与目标的相关性高低
决定权重的特征有多少 一般移除低方差的
一般要减少特征的数量 减少维度 增加泛化能力
增强特征值和特征之间的理解
filter 按照发散性和相关性 筛选
wrapper 每次选择若干个或者排除若干个
embeded 得到各个特征的权重的系数 从高到低排列
非常之关键的特征工程
为什么做特征缩放
找最小的损失函数不好找 变成一个圆就好找
归一化 把最大值和最小值缩放到0,1
标准化 按照等比例缩放 均值是0 标准差是一 符合正态分布
归一化是特殊的标准化
正则化消除过拟合
L1会是一部分变成没有效果 减少features