首页 > 其他 > 详细

机器学习入门

时间:2019-04-14 10:32:51      阅读:160      评论:0      收藏:0      [点我收藏+]

机器学习

针对经验E和一系列任务T和一定表现的衡量P,如果随着经验E的积累,针对定义好的任务T可以提高其表现P,则说明机器有学习能力

技术分享图片

 

Sklearn基本使用

 包含了所有机器学习算法   ——>   分类 回归 非监督分类 数据降维 数据预处理

 

1. 构建机器学习模型

A. 逻辑回归

B. 支持向量机

C. 决策树

D. 神经网络

在给定的数据上做解决分类的问题

导入样本数据

技术分享图片

代码:

from sklearn import datasets
wine = datasets.load_wine()
print(wine)

 

技术分享图片

技术分享图片

补充:y是样本的标签!每个分类的个数是类似的,所以不会存在不平衡的问题!

 

通过numpy包的shape()方法输入datatarget的大小:

技术分享图片

 

代码:

import numpy as np
print(np.shape(x),np.shape(y))

 

 

其中,

(178,13)----代表178*13的矩阵【意思是178个样本,每个样本有13个特征(或13个特征矩阵)】

(178,) -----代表长度是178的一个一维向量

 

把数据分成训练数据和测试数据 -----搭建模型后用一种机制评估模型

技术分享图片

 代码:

from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test = train_test_split(x,y,test_size = 0.2,random_state=42)
print(np.shape(x_train),np.shape(x_test))

 

sklearn搭建  逻辑回归模型  并在数据上训练+测试

 技术分享图片

代码:

from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression
X,y = load_iris(return_X_y=True)
clf = LogisticRegression(random_state=0,solver=‘lbfgs‘,multi_class=‘multinomial‘).fit(X,y)
clf.predict(X[:2,:])
clf.predict_proba(X[:2,:])
clf.score(X,y)

 

y数据上搭建逻辑回归模型:

1. 加入相应的库

2. 初始化一个逻辑回归模型并训练

3. 评估模型表现

 技术分享图片

代码:

print("利用逻辑回归模型来做训练")
from sklearn.linear_model import LogisticRegression
model = LogisticRegression().fit(x_train,y_train)
print("训练数据上的准确率为:%f" % (model.score(x_train,y_train)))
print("测试数据上的准确率为:%f" % (model.score(x_test,y_test)))

 

使用逻辑回归提示FutureWarning:Specify a solver to silence warning的解决:

https://cloud.tencent.com/developer/news/397742

 

 

通过sklearn搭建支持向量机模型

 技术分享图片

代码:

import numpy as np
x = np.array([[-1,-1],[-2,-1],[1,1],[2,1]])
y = np.array([1,1,2,2])
from sklearn.svm import SVC
clf = SVC(gamma=‘auto‘)
clf.fit(x,y)
print(clf.predict([[-0.8,-1]]))

 

重要参数:

1.kernel ---和函数,任何时候都要用【线性~非线性~】  

2.gamma ----调值至max

 

技术分享图片

 代码:

print("利用支持向量机模型来做训练")
from sklearn import svm
model = svm.SVC().fit(x_train,y_train)
print("训练数据上的准确率为:%f" % (model.score(x_train,y_train)))
print("测试数据上的准确率为:%f" % (model.score(x_test,y_test)))

构建决策树模型

 技术分享图片

 代码:

print("利用决策树模型来做训练")
from sklearn import tree
model = tree.DecisionTreeClassifier().fit(x_train,y_train)
print("训练数据上的准确率为:%f" % (model.score(x_train,y_train)))
print("测试数据上的准确率为:%f" % (model.score(x_test,y_test)))

搭建神经网络模型

 技术分享图片

技术分享图片

代码:

print("利用神经网络模型来做训练")
from sklearn.neural_network import MLPClassifier
model = MLPClassifier(alpha=1e-5,hidden_layer_sizes=(200),solver=‘lbfgs‘,random_state=1).fit(x_train,y_train)
print("训练数据上的准确率为:%f" % (model.score(x_train,y_train)))
print("测试数据上的准确率为:%f" % (model.score(x_test,y_test)))

 

 

 AI评估方法

准确率

技术分享图片

不适合于:不均衡样本 比如90%+   -10%

技术分享图片

【即没经过学习,根据现象直接预测】

 

 

精确率+召回率

 技术分享图片

技术分享图片

精确率:真正的正样本 / 分类(预测)的总正样本数

召回率:被发现的正样本 / 总真正的正样本数

二者之间互斥!!!! 不可兼得,一个增,另一个必然减 ——> 最佳点!  阈值点

 技术分享图片

技术分享图片

练习:

技术分享图片

 

机器学习入门

原文:https://www.cnblogs.com/expedition/p/10703629.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!