机器学习是人工智能的一个分支。人工智能致力于创造出比人类更能完成复杂任务的机器。这些任务通常涉及判断、策略和认知推理,这些技能的范围非常大——语言处理、图像识别、规划等等。
使用算法解析数据,从中学习,然后对世界上的某件事情做出决定或预测
机器学习基本思想:Bayes定理只是一个从经验中学习的数学方法
机器学习能产生影响的主要领域:物联网,聊天机器人,自动驾驶
k-最近邻算法,回归算法,决策树算法,贝叶斯算法,聚类算法
中文分词:
#========将特征值进行分词,并且去除停用词
import jieba
comment_list=[]
for comment in col:
seg_list=jieba.cut(comment,cut_all=False)##精确模式
finall=''
for seg in seg_list:
if seg not in stop_list:
finall+=seg
comment_list.append(finall)
#==========计算词频============:
from sklearn.feature_extraction.text import CountVectorizer
#计算每个词语出现的次数:
vector=CountVectorizer()#实例化
X=vector.fit_transform(comment_list) #每个关键词出现个数
word=vector.get_feature_names() #词频列表
X.toarray() #词频矩阵
哑变量处理:特征值中出现类别的属性,特征向量化
from sklearn.feature_extraction import DictVectorizer
dict=DictVectorizer(sparse=False)
#将数据转换为字典类型,然后进行模型训练
x=dict.fit_transform(x.to_dict(orient='records'))
标准化数据:
#标准差标准化方法 (x-u)/σ
from sklearn.preprocessing import StandardScaler
data = StandardScaler().fit_transform(data)
分割训练集和测试集:
from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test=train_test_split(x,y,train_size=0.8)
KNN(K最近邻算法) :将测试集中每一行值和训练集进行公式计算,然后根据排序,取K个欧式距离最短的数值(距离越短,相似度越高)然后取数值里面标签的的众数,即为测试集的标签
#广播制度
d_index = np.argsort(np.sqrt(np.sum((training_digits[:, :1024]-i[:1024])**2, axis=1)))[:k]
labels =training_digits[d_index][:, -1]
label= pd.Series(data = labels).mode()[0] ##取总数,输出测试值
朴素贝叶斯:根据概率论进行分类
from sklearn.naive_bayes import MultinomialNB #朴素贝叶斯算法模块
clf=MultinomialNB()
clf.fit(X_train,y_train)
y_predict=clf.predict(X_test)
print('预测结果:',y_predict)
print('真实结果:',y_test)
决策树算法:越确定的信息,熵值越小(范围 0,1),信息量越小,信息增益度越大,反之亦然,使用信息增益作为属性选择度量,熵的求法:先求条件熵,再求平均信息熵
from sklearn.tree import DecisionTreeClassifier
dc=DecisionTreeClassifier(criterion='entropy',max_depth=5)#信息增益,树最大深度,当标签多,防止过拟合
dc.fit(x_train,y_train)
dc.score(x_test, y_test)#模型精度
回归算法(预测):根据标签值训练出回归函数
#线性回归算法模块
from sklearn.linear_model import LinearRegression
clf = LinearRegression().fit(X_train,y_train)#拟合训练集
# print('截距:',clf.intercept_)##常数
# print('回归系数:',clf.coef_)##13个自变量对应的系数;
#预测y值
y_predict=clf.predict(X_test)
二分类(标签二选一)
聚类:聚类用于根据属性和行为对象进行分组,与分类不同
k-means算法聚类:分k个类型,随机选取k个聚类中心,根据公式求出各类型数量,取它们平均值为下一轮聚类中心,一直循环(根据公式求出各类型数量,取它们平均值为下一轮聚类中心)直到聚类中心不变化
from sklearn.cluster import KMeans 导入算法
k=5 类型数量
kmeans_model=KMeans(n_clusters=k) 建模
fit_kmeans=kmeans_model.fit(data) 训练模型
kmeans_model.cluster_centers_ 查看聚类中心
kmeans_model.labels_ 类别
kmeans_model.labels_[kmeans_model.labels_==0].size 类型数量
降维:找共同点减少数据集的变量,大数据可视化使用降维识别趋势和规则
强化学习使用机器的个人历史和经验来做出决定,强化学习不涉及提供“正确的”答案或输出。相反,它只关注性能。