该教程主要参考了scikit-learn机器学习库定制。本章节我们将讲解机器学习中最重要的一部分中特征工程中的数据预处理,后续我还会针对系统性的讲解机器学习知识.点解参考文档学习,效果更佳!
1.1机器学习基础模块
1.1.1分类算法
- 主要用来做垃圾邮件的检测和简答图像的识别。
- 常见的分类算法:KNN、Logistic Regression、Decision Tree、SVC、Navie Bayes等。
1.1.2回归算法
- 主要用来做药物反应、股票价格拟合等。
- 线性回归就是回归,主要运用来数学、金融、经济等领域
- 逻辑回归主要用来做分类。主要用在数据挖掘、疾病自动诊断、经济预测等领域。
1.1.3聚类算法
- 是一种无监督学习,主要应用来客户细分、实验结果的分组
- 常用算法:KMeans、DBSCAN、层次据类等
1.1.4关联算法
- 主要用来做推荐系统、apriori、协同过滤等。
1.1.5降维算法
- 应用:数据可视化、用来提高模型的效率
- 算法:PCA、LDA、NMF等
1.1.6模型选择
- 模型的选择,比较、验证和参数的选择等。
1.1.7数据预处理
- 应用特征提取、归一化、文本转化等
1.2datasets模块(数据的采集)
1.2.1自带的数据集
1.2.2自定义数据集
1】回归模型数据集生成
X,Y=datasets.make_regression(n_samples=100,n_features=1,n_targets=1,noise=10) # 用来生成回归数据
plt.scatter(X,Y)
plt.show()
2】分类模型数据集生成
X,Y=make_classification(
n_samples=300, # 300条数据
n_features=2, # 2个特征
n_redundant=0, # 没有冗余的数据
n_informative=2, # 信息量
random_state=22, # 随机状态
n_clusters_per_class=1, # 每类几个部分
scale=100 # # 规模
)
plt.scatter(X[:,0],X[:,1],c='y')
plt.show()
3】层次聚类数据集生成
X,t = datasets.make_swiss_roll(n_samples=1500,noise = 0.05)
4】团状数据集生成
X,y = datasets.make_blobs(n_samples=300,centers=5)
plt.scatter(X[:,0],X[:,1],c = y)
X3,y3 = datasets.make_blobs(n_samples=500,n_features=2,centers=[[1.5,1.5]],cluster_std=0.2)
5】环形数据集合生产
X,y = datasets.make_circles(
n_samples=100, # 样本个数
shuffle=True, # 是否打乱顺序
noise=0.1, # 噪声点占比
random_state=None, # 随机种子
factor=0.3, # 方差
)
6】常用参数
- n_samples:样本数量
- n_features:特征的个数,有多少个特征就有多少个未知数
- centers:中心点的个数
- cluster_std:聚类的标准差
- center_box:中心点的范围,默认(-10.0, 10.0)
- shuffle:点是随机的
- random_state:如果为True,每次的随机都是一样的
1.3模型的加载和保存
1.3.1pickle模块
模型的保存
import pickle
with open('./knn',mode='wb') as wf:
pickle.dump(knn1,wf)
模型的加载
with open('./knn',mode='rb') as rf:
knn=pickle.load(rf)
print(knn)
1.3.2datasets自带的joblib模块
模型的加载和保存
from sklearn.externals import joblib
joblib.dump(knn,'./knn1')
knn1=joblib.load('./knn1')
print(knn1)