機器學習問題描述
機器學習分類
任務根據麻瓜程式設計及習題整理
禁轉人工智慧
機器學習
實現人工智慧的一種方法
深度學習
機器學習中的一類演算法
特點:大資料,效果好,影象識別,語音識別
概括:通過學習歷史資料的特徵構建模型**未來資料
根據訓練樣本是否包含標籤分類:
監督學習
訓練樣本包含對應的「標籤」
無監督學習
訓練樣本的屬性不包括對應的「標籤」,如根據上網行為對客戶分群從而進行精確營銷等
無監督學習通常是通過聚類來將相似的樣本聚在一起,然後分析這種聚類的原因
監督學習
學習歷史資料,根據特徵**水果類別
資料集描述
每列乙個特徵,每一行乙個樣本,最後一列類別
思路語言:python
安裝機器學習工具庫:pip install scikit-learn
劃分資料集:train_test_split()
需要劃分訓練集和測試集
使用演算法「近朱者赤」:euclidean
(歐氏距離)
計算空間中兩個點的距離
**實現
import pandas as pd
from sklearn.model_selection import train_test_split
from scipy.spatial.distance import euclidean
import numpy as np
import ai_utils
data_file = './data_ai_practice/fruit_data.csv'
feat_cols = ['mass','width','height','color_score']
def get_pred_label(test_sample_feat,train_data):
"""「近朱者赤」 找最近距離的訓練樣本,取其標籤作為**樣本的標籤
"""dis_lis =
for idx,row in train_data.iterrows():
#訓練樣本特徵
train_sample_feat = row[feat_cols].values
#計算距離
dis = euclidean(test_sample_feat,train_sample_feat)
#最小距離對應的位置
pos = np.argmin(dis_lis)
pred_label = train_data.iloc[pos]['fruit_name']
return pred_label
def main():
"""主函式
"""#讀取資料集
fruit_data = pd.read_csv(data_file)
#劃分資料集
train_data,test_data=train_test_split(fruit_data,test_size=1/5,random_state=10)
#**對的個數
acc_count = 0
#分類器
for idx,row in test_data.iterrows():
#測試樣本特徵
test_sample_feat = row[feat_cols].values
#**值
pred_label = get_pred_label(test_sample_feat,train_data)
#真實值
true_label = row['fruit_name']
print('樣本{}的真實標籤{},**標籤{}'.format(idx,true_label,pred_label))
if true_label == pred_label:
acc_count += 1
#準確率
accuracy = acc_count/test_data.shape[0]
print('**準確率%'.format(accuracy*100))
if __name__ == '__main__':
main()
歐氏距離分類器
歐氏距離分類器是貝葉斯分類器的退化版本,在樣本滿足一定條件下成立。如下 function cls mahalanobisclassifier varargin x,m,sigma parseinputs varargin 分析輸入的變數 dis zeros size m,1 1 歐氏距離 cls z...
歐氏距離的矩陣實現 k近鄰分類器
在這個程式裡有130個訓練樣本也就是矩陣x,每個樣本實際上就是乙個點,它的第一行和第二行分別是它的橫縱座標 有2500個測試樣本也就是矩陣y,每個樣本實際上也是乙個點,第一行和第二行分別是它的橫縱座標。距離函式的主體 如下 xx sum x.2,1 1 130 yy sum y.2,1 d repm...
歐氏距離(Euclidean distance)
歐氏距離定義 歐氏距離 euclidean distance 是乙個通常採用的距離定義,它是在m維空間中兩個點之間的真實距離。在二維和三維空間中的歐式距離的就是兩點之間的距離,二維的公式是 d sqrt x1 x2 y1 y2 三維的公式是 d sqrt x1 x2 y1 y2 z1 z2 推廣到n...