happy machine learning(First One)

从前几天起我就开始了愉快的机器学习,这里记录一下学习笔记,我看的是吴恩达老师的视频,这篇博客将会按吴老师的教学目录来集合各优良文章,以及部分的个人我的总结php

 

一、  监督学习与无监督学习html

监督:给定一个算法,须要部分数据集有正确的答案python

分类和回归:给定一个样本特征 , 咱们但愿预测其对应的属性值 , 若是  是离散的, 那么这就是一个分类问题,反之,若是  是连续的实数, 这就是一个回归问题算法

 

无监督学习dom

聚类算法:给定一组样本特征 , 咱们没有对应的属性值 , 而是想发掘这组样本在维空间的分布, 好比分析哪些样本靠的更近,哪些样本之间离得很远, 这就是属于聚类问题。机器学习

 

鸡尾酒聚会算法:https://blog.csdn.net/mrharvey/article/details/18598605函数

 

二、 代价函数学习

实质为线性函数的拟合度问题测试

参考https://www.cnblogs.com/luozhenj/articles/7639484.htmlspa

 相应的代码(python)

https://o-my-chenjian.com/2017/05/26/Cost-Function-Of-ML/

 

三、梯度降低

这玩意跟dfs同样,拿吴老师的举例,下山,每一步找最陡的下去,最终到最低点

这篇文章写的比较好  https://www.jianshu.com/p/c7e642877b0e

 

四、多项式回归

概念见这篇文章:https://blog.csdn.net/zoe9698/article/details/82386914

实践见这篇:https://www.cnblogs.com/Belter/p/8530222.html

 

五、正规方程

公式推导:https://blog.csdn.net/zoe9698/article/details/82419330

python实现:https://www.lmlphp.com/user/3178/article/item/27041/

 

接下来就是与识别有关的内容,首先是分类问题

六、分类

理论介绍:https://www.cnblogs.com/lsyz/p/8711103.html

而后我找到了skleran这个库,尝试去编写一些代码来进行分析

 今天先学会怎么生成数据吧23333

from sklearn import datasets#引入数据集
#构造的各类参数能够根据本身须要调整
X,y=datasets.make_regression(n_samples=200,n_features=2,n_targets=2,noise=1)

###绘制构造的数据###
import matplotlib.pyplot as plt
plt.figure()
plt.scatter(X,y)
plt.show()

还有那啥datatest.load_xxxx

 

今天继续学习这个库

首先是KNN

import numpy as np
from sklearn import datasets
from sklearn.cross_validation import train_test_split
from sklearn.neighbors import  KNeighborsClassifier

iris = datasets.load_iris()
iris_X = iris.data
iris_Y = iris.target
# print(iris_X[:2,:])
# print(iris_Y)
##将上面的数据集分红测试集和训练集,其中测试集占30%
X_train,X_test,Y_train,Y_test = train_test_split(iris_X,iris_Y,test_size=0.3)
##此时数据打乱了
#print(Y_train)
knn = KNeighborsClassifier()
##训练
knn.fit(X_train,Y_train)
##预测是哪一种花
print(knn.predict(X_test))
##打印真实值
print(Y_test)

下面是聚类,2到多维

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
from sklearn.datasets.samples_generator import make_blobs
# X为样本特征,Y为样本簇类别, 共1000个样本,每一个样本4个特征,共4个簇,簇中心在[-1,-1], [0,0],[1,1], [2,2], 簇方差分别为[0.4, 0.2, 0.2,0.2]
X, y = make_blobs(n_samples=1000, n_features=2, centers=[[-1,-1], [0,0], [1,1], [2,2]], cluster_std=[0.4, 0.2, 0.2, 0.2], 
                  random_state =9)
plt.scatter(X[:, 0], X[:, 1], marker='o')
plt.show()

 

咱们改一下数据来看一下效果

import numpy as np
import matplotlib.pyplot as plt

from sklearn.datasets.samples_generator import make_blobs
# X为样本特征,Y为样本簇类别, 共1000个样本,每一个样本4个特征,共4个簇,簇中心在[-1,-1], [0,0],[1,1], [2,2], 簇方差分别为[0.4, 0.3, 0.2,0.1]
X, y = make_blobs(n_samples=1000, n_features=2, centers=[[-1,-1], [0,0], [1,1], [2,2]], cluster_std=[0.4, 0.3, 0.2, 0.1],
                  random_state =9)
plt.scatter(X[:, 0], X[:, 1], marker='o')
plt.show()

因此差很少应该能理解对应参数的含义了吧,这是二维数据和二维特征

咱们用K-Means聚类方法来作聚类,首先选择k=2

import numpy as np
import matplotlib.pyplot as plt

from sklearn.datasets.samples_generator import make_blobs

# X为样本特征,Y为样本簇类别, 共1000个样本,每一个样本4个特征,共4个簇,簇中心在[-1,-1], [0,0],[1,1], [2,2], 簇方差分别为[0.4, 0.2, 0.2]
X, y = make_blobs(n_samples=1000, n_features=2, centers=[[-1,-1], [0,0], [1,1], [2,2]], cluster_std=[0.4, 0.3, 0.2, 0.1],
                  random_state =9)
plt.scatter(X[:, 0], X[:, 1], marker='o')
plt.show()

from sklearn.cluster import KMeans
y_pred = KMeans(n_clusters=2, random_state=9).fit_predict(X)
plt.scatter(X[:, 0], X[:, 1], c=y_pred)
plt.show()

k=3,4只需改一下clusters

咱们选择一个效果评判函数: 

from sklearn import metrics
metrics.calinski_harabaz_score(X, y_pred) 

下面是相应的kmeans理论:https://www.cnblogs.com/bourneli/p/3645049.html

相关文章
相关标签/搜索