《人工智能导论》这本书总结

第3章 机器学习初步
 

机器学习是什么?
就是把无序的数据转换为有用的信息。检测一个单词是否存在并没有太大的意义,当某个特定单词同时出现时,是否是垃圾邮件。
1.抽象实际问题
例如回答一杯液体是红酒还是啤酒,首先要清楚这个问题是一个分类问题,泡沫数量,液体颜色,酒杯的形状等是重点,液体的多少,酒杯的容量等不是。
2.获取数据
爬虫,数据库拉取
3.数据预处理
数据清洗,数据归一化,扩充
4。特征工程
训练集,验证集,测试集。
5训练模型及调优
6.模型评估

数据降维--主成分分析

为什么要数据降维:降维技术来减少要考虑的随机变量的个数,

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from sklearn import datasets
from sklearn.decomposition import PCA

iris=datasets.load_iris()
X=iris.data[:,:2]
y=iris.target
x_min,x_max=X[:,0].min()-.5,X[:,0].max()+.5
y_min,y_max=X[:,1].min()-.5,X[:,1].max()+.5
plt.figure(2,figsize=(8,6))
plt.clf()
plt.scatter(X[:,0],X[:,1],c=y,cmap=plt.cm.Set1,edgecolor='k')
plt.xlabel('Sepal length')
plt.ylabel('sepal width')
plt.xlim(x_min,x_max)
plt.ylim(y_min,y_max)
plt.xticks(())
plt.yticks(())
fig=plt.figure(1,figsize=(8,6))
ax=Axes3D(fig,elev=-150,azim=110)
X_reduced=PCA(n_components=3).fit_transform(iris.data)
ax.scatter(X_reduced[:,0],X_reduced[:,1],X_reduced[:,2],c=y,cmap=plt.cm.Set1,edgecolor='k',s=40)
ax.set_title("first three PCA directions")
ax.set_xlabel("1st eigenvector")
ax.w_xaxis.set_ticklabels([])
ax.set_ylabel("2nd eigenvector")
ax.w_yaxis.set_ticklabels([])
ax.set_zlabel("1st eigenvector")
ax.w_zaxis.set_ticklabels([])

plt.show()

 3.5 逻辑回归分类

from sklearn.datasets import load_iris
import pandas as pd
from sklearn.linear_model import LogisticRegression
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split

iris=load_iris()
x=iris.data
y=iris.target
x_train,x_test,y_train,y_test=train_test_split(x,y,random_state=0,test_size=0.20)
clf=LogisticRegression(C=1,solver='newton-cg',multi_class='multinomial')
clf.fit(x_train,y_train)
print("实际值",y_test)
print("预测值",clf.predict(x_test))
print(clf.score(x_train,y_train))
print(clf.score(x_test,y_test))
print(clf.predict([[3.1,2.3,1.2,0.5]]))

3.7聚类

 聚类和分类的最大区别在于,聚类过程为无监督过程,即待处理数据对象没有任何先验知识,而分类过程为有监督过程,即存在有先验知识的训练
数据集。
聚类的目标是识别数据点的内在属性,使他们属于相同的子组。

 

import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans

X=np.loadtxt('data.txt',delimiter=',')
num_clusters=5
plt.figure()
plt.scatter(X[:,0],X[:,1],marker='o',facecolors='none',edgecolors='black',s=80)
x_min,x_max=X[:,0].min()-1,X[:,0].max()+1
y_min,y_max=X[:,1].min()-1,X[:,1].max()+1
plt.title('input data')
plt.xlim(x_min,x_max)
plt.ylim(y_min,y_max)
plt.xticks()
plt.yticks()

kmeans=KMeans(init='k-means++'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值