200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > sklearn分类算法(逻辑回归 朴素贝叶斯 K近邻 支持向量机 决策树 随机森林 )的使用

sklearn分类算法(逻辑回归 朴素贝叶斯 K近邻 支持向量机 决策树 随机森林 )的使用

时间:2020-05-27 12:13:19

相关推荐

sklearn分类算法(逻辑回归 朴素贝叶斯 K近邻 支持向量机  决策树 随机森林 )的使用

scikit-learn机器学习的分类算法包括逻辑回归、朴素贝叶斯、KNN、支持向量机、决策树和随机森林等。这些模块的调用形式基本一致,训练用fit方法,预测用predict方法。用joblib.dump方法可以保存训练的模型,用joblib.load方法可以载入模型

测试程序。测试数据采用小麦种子数据集(seeds)。(注意,该数据集有个别数据用多个\t分割,执行前要把多余的\t删除,或者使用正则表达式的re.split('\s'))

小麦数据集合说明:

# -*- coding: utf-8 -*- import numpy as np from sklearn.cross_validation import KFold from sklearn.linear_model import LogisticRegression from sklearn.naive_bayes import GaussianNB from sklearn.neighbors import KNeighborsClassifier from sklearn import svm from sklearn.tree import DecisionTreeClassifier from sklearn.ensemble import RandomForestClassifier feature_names = [ 'area', 'perimeter', 'compactness', 'length of kernel', 'width of kernel', 'asymmetry coefficien', 'length of kernel groove', ] COLOUR_FIGURE = False def load_csv_data(filename):#读取文件,文件最后一列当成标签data = [] labels = [] datafile = open(filename) for line in datafile: fields = line.strip().split('\t') data.append([float(field) for field in fields[:-1]]) labels.append(fields[-1])#文件最后一列当成标签data = np.array(data) labels = np.array(labels) return data, labels def accuracy(test_labels, pred_lables): correct = np.sum(test_labels == pred_lables) #相等 n = len(test_labels) return float(correct) / n #------------------------------------------------------------------------------ #K近邻 #------------------------------------------------------------------------------ def testKNN(features, labels): kf = KFold(len(features), n_folds=3, shuffle=True) #len(features)这个参数的意思是把(0,len(features)-1)之间的序列随机拆分成3份。clf = KNeighborsClassifier(n_neighbors=3) result_set = []for train, test in kf:clf.fit(features[train], labels[train])result=clf.predict(features[test])result_set.append((result, test))score=[]for result in result_set:print (labels[result[1]], result[0])a=accuracy(labels[result[1]], result[0])score.append(a)print(score)#------------------------------------------------------------------------------ #逻辑回归 #------------------------------------------------------------------------------ def testLR(features, labels): kf = KFold(len(features), n_folds=3, shuffle=True) clf = LogisticRegression() result_set = [(clf.fit(features[train], labels[train]).predict(features[test]), test) for train, test in kf] score = [accuracy(labels[result[1]], result[0]) for result in result_set] print(score) #------------------------------------------------------------------------------ #朴素贝叶斯 #------------------------------------------------------------------------------ def testNaiveBayes(features, labels): kf = KFold(len(features), n_folds=3, shuffle=True) clf = GaussianNB() result_set = [(clf.fit(features[train], labels[train]).predict(features[test]), test) for train, test in kf] score = [accuracy(labels[result[1]], result[0]) for result in result_set] print(score) #------------------------------------------------------------------------------ #--- 支持向量机 #------------------------------------------------------------------------------ def testSVM(features, labels): kf = KFold(len(features), n_folds=3, shuffle=True) clf = svm.SVC() result_set = [(clf.fit(features[train], labels[train]).predict(features[test]), test) for train, test in kf] score = [accuracy(labels[result[1]], result[0]) for result in result_set] print(score) #------------------------------------------------------------------------------ #--- 决策树 #------------------------------------------------------------------------------ def testDecisionTree(features, labels): kf = KFold(len(features), n_folds=3, shuffle=True) clf = DecisionTreeClassifier() result_set = [(clf.fit(features[train], labels[train]).predict(features[test]), test) for train, test in kf] score = [accuracy(labels[result[1]], result[0]) for result in result_set] print(score) #------------------------------------------------------------------------------ #--- 随机森林 #------------------------------------------------------------------------------ def testRandomForest(features, labels): kf = KFold(len(features), n_folds=3, shuffle=True) clf = RandomForestClassifier() result_set = [(clf.fit(features[train], labels[train]).predict(features[test]), test) for train, test in kf] score = [accuracy(labels[result[1]], result[0]) for result in result_set] print(score) if __name__ == '__main__': #features, labels = load_csv_data('/Users/yumh/Desktop/重要/第二课课程代码及数据文件/data./data/seeds_dataset.txt')features, labels = load_csv_data('/Users/yumh/Desktop/重要/第二课课程代码及数据文件/data/seeds_dataset.txt') # print(features) # print(labels)print('LogisticRegression: \r') testLR(features, labels) print('GaussianNB: \r') testNaiveBayes(features, labels) print('KNN: \r') testKNN(features, labels) print('SVM: \r') testSVM(features, labels) print('Decision Tree: \r') testDecisionTree(features, labels) print('Random Forest: \r') testRandomForest(features, labels)

实验数据:seeds_dataset.txt

15.2614.840.8715.7633.3122.2215.22114.8814.570.88115.5543.3331.0184.956114.2914.090.9055.2913.3372.6994.825113.8413.940.89555.3243.3792.2594.805116.1414.990.90345.6583.5621.3555.175114.3814.210.89515.3863.3122.4624.956114.6914.490.87995.5633.2593.5865.219114.1114.10.89115.423.3022.75116.6315.460.87476.0533.4652.045.877116.4415.250.8885.8843.5051.9695.533115.2614.850.86965.7143.2424.5435.314114.0314.160.87965.4383..7175.001113.8914.020.8885.4393.1993.9864.738113.7814.060.87595.4793.1563.1364.872113.7414.050.87445.4823.1142.9324.825114.5914.280.89935.3513.3334.1854.781113.9913.830.91835.1193.3835.2344.781115.6914.750.90585.5273.5141.5995.046114.714.210.91535.2053.4661.7674.649112.7213.570.86865.2263.0494.1024.914114.1614.40.85845.6583.1293.0725.176114.1114.260.87225.523.1682.6885.219115.8814.90.89885.6183.5070.76515.091112.0813.230.86645.0992.9361.4154.961115.0114.760.86575.7893.2451.7915.001116.1915.160.88495.8333.4210.9035.307113.0213.760.86415.3953.0263.3734.825112.7413.670.85645.3952.9562.5044.869114.1114.180.8825.5413.2212.7545.038113.4514.020.86045.5163.0653.5315.097113.1613.820.86625.4542.9750.85515.056115.4914.940.87245.7573.3713.4125.228114.0914.410.85295.7173.1863.925.299113.9414.170.87285.5853.152.1245.012115.0514.680.87795.7123.3282.1295.36116.12150.95.7093.4852.275.443116.215.270.87345.8263.4642.8235.527117.0815.380.90795.8323.6832.9565.484114.814.520.88235.6563.2883.1125.309114.2814.170.89445.3973.2986.6855.001113.5413.850.88715.3483.1562.5875.178113.513.850.88525.3513.1582.2495.176113.1613.550.90095.1383..4614.783115.514.860.8825.8773.3964.7115.528115.1114.540.89865.5793.4623.1285.18113.814.040.87945.3763.1551.564.961115.3614.760.88615.7013.3931.3675.132114.9914.560.88835.573.3772.9585.175114.7914.520.88195.5453.2912.7045.111114.8614.670.86765.6783.2582.1295.351114.4314.40.87515.5853.2723.9755.144115.7814.910.89235.6743.4345.5935.136114.4914.610.85385.7153.1134.1165.396114.3314.280.88315.5043.1993.3285.224114.5214.60.85575.7413.1131.4815.487115.0314.770.86585.7023.2121.9335.439114.4614.350.88185.3883.3772.8025.044114.9214.430.90065.3843.4121.1425.088115.3814.770.88575.6623.4191.9995.222112.1113.470.83925.1593.0321.5024.519111.4212.860.86835.0082.852.74.607111.2312.630.8844.9022.8792.2694.703112.3613.190.89235.0763.0423.224.605113.2213.840.8685.3953.074.1575.088112.7813.570.87165.2623.0261.1764.782112.8813.50.88795.1393.1192.3524.607114.3414.370.87265.633.191.3135.15114.0114.290.86255.6093.1582.2175.132114.3714.390.87265.5693.1531.4645.3112.7313.750.84585.4122.8823.5335.067117.6315.980.86736.1913.5614.0766.06216.8415.670.86235.9983.4844.6755.877217.2615.730.87635.9783.5944.5395.791219.1116.260.90816.1543.932.9366.079216.8215.510.87866.0173.4864.0045.841216.7715.620.86385.9273.4384.925.795217.3215.910.85996.0643.4033.8245.922220.7117.230.87636.5793.8144.4516.451218.9416.490.8756.4453.6395.0646.362217.1215.550.88925.853.5662.8585.746216.5315.340.88235.8753.4675.5325.88218.7216.190.89776.0063.8575.3245.879220.216.890.88946.2853.8645.1736.187219.5716.740.87796.3843.7721.4726.273219.5116.710.8786.3663.8012.9626.185218.2716.090.8876.1733.6512.4436.197218.8816.260.89696.0843.7641.6496.109218.9816.660.8596.5493.673.6916.498221.1817.210.89896.5734.0335.786.231220.8817.050.90316.454.0325.0166.321220.116.990.87466.5813.7851.9556.449218.7616.20.89846.1723.7963.126.053218.8116.290.89066.2723.6933.2376.053218.5916.050.90666.0373.866.0015.877218.3616.520.84526.6663.4854.9336.448216.8715.650.86486.1393.4633.6965.967219.3116.590.88156.3413.813.4776.238218.9816.570.86876.4493.5522.1446.453218.1716.260.86376.2713.5122.8536.273218.7216.340.8816.2193.6842.1886.097216.4115.250.88665.7183.5254.2175.618217.9915.860.89925.893.6942.0685.837219.4616.50.89856.1133.8924.3086.009219.1816.630.87176.3693.6813.3576.229218.9516.420.88296.2483.7553.3686.148218.8316.290.89176.0373.7862.5535.879218.8516.170.90566.1523.8062.8436.2217.6315.860.886.0333.5733.7475.929219.9416.920.87526.6753.7633.2526.55218.5516.220.88656.1533.6741.7385.894218.4516.120.89216.1073.7692.2355.794219.3816.720.87166.3033.7913.6785.965219.1316.310.90356.1833.9022.1095.924219.1416.610.87226.2593.7376.6826.053220.9717.250.88596.5633.9914.6776.316219.0616.450.88546.4163.7192.2486.163218.9616.20.90776.0513.8974.3345.75219.1516.450.8896.2453.8153.0846.185218.8916.230.90086.2273.7693.6395.966220.0316.90.88116.4933.8573.0636.32220.2416.910.88976.3153.9625.9016.188218.1416.120.87726.0593.5633.6196.011216.1715.380.85885.7623.3874.2865.703218.4315.970.90775.983.7712.9845.905215.9914.890.90645.3633.5823.3365.144218.7516.180.89996.1113.8694.1885.992218.6516.410.86986.2853.5944.3916.102217.9815.850.89935.9793.6872.2575.919220.1617.030.87356.5133.7731.916.185217.5515.660.89915.7913.695.3665.661218.315.890.91085.9793.7552.8375.962218.9416.320.89426.1443.8252.9085.949215.3814.90.87065.8843.2684.4625.795216.1615.330.86445.8453.3954.2665.795215.5614.890.88235.7763.4084.9725.847215.3814.660.8995.4773.4653.65.439217.3615.760.87856.1453.5743.5265.971215.5715.150.85275.923.2312.645.879215.615.110.8585.8323.2862.7255.752216.2315.180.8855.8723.4723.7695.922213.0713.920.8485.4722.9945.3045.395313.3213.940.86135.5413.0737.0355.44313.3413.950.8625.3893.0745.9955.307312.2213.320.86525.2242.9675.4695.221311.8213.40.82745.3142.7774.4715.178311.2113.130.81675.2792.6876.1695.275311.4313.130.83355.1762.7192.2215.132312.4913.460.86585.2672.9674.4215.002312.713.710.84915.3862.9113.265.316310.7912.930.81075.3172.6485.4625.194311.8313.230.84965.2632.845.1955.307312.0113.520.82495.4052.7766.9925.27312.2613.60.83335.4082.8334.7565.36311.1813.040.82665.222.6933.3325.001311.3613.050.83825.1752.7554.0485.263311.1913.050.82535.252.6755.8135.219311.3412.870.85965.0532.8493.3475.003312.1313.730.80815.3942.7454.8255.22311.7513.520.80825.4442.6784.3785.31311.4913.220.82635.3042.6955.3885.31312.5413.670.84255.4512.8793.0825.491312.0213.330.85035.352.814.2715.308312.0513.410.84165.2672.8474.9885.046312.5513.570.85585.3332.9684.4195.176311.1412.790.85585.0112.7946.3885.049312.113.150.87935.1052.9412..056312.4413.590.84625.3192.8974.9245.27312.1513.450.84435.4172.8373.6385.338311.3513.120.82915.1762.6684.3375.132311.24130.83595.092.7153.5215.088311.02130.81895.3252.7016.7355.163311.5513.10.84555.1672.8456.7154.956311.2712.970.84195.0882.7634.3095311.413.080.83755.1362.7635.5885.089310.8312.960.80995.2782.6415.1825.185310.812.570.8594.9812.8214.7735.063311.2613.010.83555.1862.715.3355.092310.7412.730.83295.1452.6424.7024.963311.4813.050.84735.182.7585.8765.002312.2113.470.84535.3572.8931.6615.178311.4112.950.8565.092.7754.9574.825312.4613.410.87065.2363.0174.9875.147312.1913.360.85795.242.9094.8575.158311.6513.070.85755.1082.855.2095.135312.8913.770.85415.4953.0266.1855.316311.5613.310.81985.3632.6834.0625.182311.8113.450.81985.4132.7164.8985.352310.9112.80.83725.0882.6754.1794.956311.2312.820.85945.0892.8217.5244.957310.5912.410.86484.8992.7874.9754.794310.9312.80.8395.0462.7175.3985.045311.2712.860.85635.0912.8043.9855.001311.8713.020.87955.1322.9533.5975.132310.8212.830.82565.182.634.8535.089312.1113.270.86395.2362.9754.1325.012312.813.470.8865.163.1264.8734.914312.7913.530.87865.2243.0545.4834.958313.3713.780.88495.323.1284.675.091312.6213.670.84815.412.9113.3065.231312.7613.380.89645.0733.1552.8284.83312.3813.440.86095.2192.9895.4725.045312.6713.320.89774.9843.1352.34.745311.1812.720.8685.0092.814.0514.828312.713.410.88745.1833.0918.4565312.3713.470.85675.2042.963.9195.001312.1913.20.87835.1372.9813.6314.87311.2312.880.85115.142.7954.3255.003313.213.660.88835.2363.2328.3155.056311.8413.210.85215.1752.8363.5985.044312.313.340.86845.2432.9745.6375.0633

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。